diff options
author | Marek Gilbert <mcg@google.com> | 2018-04-15 16:50:15 -0700 |
---|---|---|
committer | Marek Gilbert <mcg@google.com> | 2018-04-15 16:50:15 -0700 |
commit | 37ad4f6991aa599ecbce433262a0f3dfceb7738a (patch) | |
tree | 93455d7587dfa89a40daf1d730bf8473a74a014c /Firestore/third_party | |
parent | fdaf3cfa3c19c26b6764e78202877035011f8e81 (diff) |
Make abseil-cpp buildable on master
Diffstat (limited to 'Firestore/third_party')
5 files changed, 2 insertions, 298 deletions
diff --git a/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt b/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt index e7b5139..ff03f3c 100644 --- a/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt +++ b/Firestore/third_party/abseil-cpp/absl/CMakeLists.txt @@ -21,3 +21,5 @@ add_subdirectory(memory) add_subdirectory(meta) add_subdirectory(numeric) add_subdirectory(strings) +add_subdirectory(types) +add_subdirectory(utility) diff --git a/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc b/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc index 982989b..e87f101 100644 --- a/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc +++ b/Firestore/third_party/abseil-cpp/absl/strings/escaping_test.cc @@ -22,7 +22,6 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" -#include "absl/container/fixed_array.h" #include "absl/strings/str_cat.h" #include "absl/strings/internal/escaping_test_common.inc" diff --git a/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt b/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt index fd71f38..2763cfe 100644 --- a/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt +++ b/Firestore/third_party/abseil-cpp/absl/types/CMakeLists.txt @@ -15,55 +15,10 @@ # list(APPEND TYPES_PUBLIC_HEADERS - "any.h" - "bad_any_cast.h" "bad_optional_access.h" "optional.h" - "span.h" ) - -# any library -absl_header_library( - TARGET - absl_any - PUBLIC_LIBRARIES - absl::utility - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} - EXPORT_NAME - any -) - -# span library -absl_header_library( - TARGET - absl_span - PUBLIC_LIBRARIES - absl::utility - EXPORT_NAME - span -) - - -# bad_any_cast library -list(APPEND BAD_ANY_CAST_SRC - "bad_any_cast.cc" - ${TYPES_PUBLIC_HEADERS} -) - -absl_library( - TARGET - absl_bad_any_cast - SOURCES - ${BAD_ANY_CAST_SRC} - PUBLIC_LIBRARIES - absl::base absl::any - EXPORT_NAME - bad_any_cast -) - - # optional library list(APPEND OPTIONAL_SRC "optional.cc" @@ -96,82 +51,10 @@ absl_library( ) - # ## TESTS # - -# test any_test -set(ANY_TEST_SRC "any_test.cc") -set(ANY_TEST_PUBLIC_LIBRARIES absl::base absl::throw_delegate absl::any absl::bad_any_cast test_instance_tracker_lib) - -absl_test( - TARGET - any_test - SOURCES - ${ANY_TEST_SRC} - PUBLIC_LIBRARIES - ${ANY_TEST_PUBLIC_LIBRARIES} - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} -) - - -# test any_test_noexceptions -absl_test( - TARGET - any_test_noexceptions - SOURCES - ${ANY_TEST_SRC} - PUBLIC_LIBRARIES - ${ANY_TEST_PUBLIC_LIBRARIES} -) - -# test any_exception_safety_test -set(ANY_EXCEPTION_SAFETY_TEST_SRC "any_exception_safety_test.cc") -set(ANY_EXCEPTION_SAFETY_TEST_PUBLIC_LIBRARIES absl::any absl::base absl::base_internal_exception_safety_testing) - -absl_test( - TARGET - any_exception_safety_test - SOURCES - ${ANY_EXCEPTION_SAFETY_TEST_SRC} - PUBLIC_LIBRARIES - ${ANY_EXCEPTION_SAFETY_TEST_PUBLIC_LIBRARIES} - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} -) - - -# test span_test -set(SPAN_TEST_SRC "span_test.cc") -set(SPAN_TEST_PUBLIC_LIBRARIES absl::base absl::strings absl::throw_delegate absl::span test_instance_tracker_lib) - -absl_test( - TARGET - span_test - SOURCES - ${SPAN_TEST_SRC} - PUBLIC_LIBRARIES - ${SPAN_TEST_PUBLIC_LIBRARIES} - PRIVATE_COMPILE_FLAGS - ${ABSL_EXCEPTIONS_FLAG} -) - - -# test span_test_noexceptions -absl_test( - TARGET - span_test_noexceptions - SOURCES - ${SPAN_TEST_SRC} - PUBLIC_LIBRARIES - ${SPAN_TEST_PUBLIC_LIBRARIES} -) - - - # test optional_test set(OPTIONAL_TEST_SRC "optional_test.cc") set(OPTIONAL_TEST_PUBLIC_LIBRARIES absl::base absl::throw_delegate absl::optional absl_bad_optional_access) diff --git a/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt b/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt index df21b85..76e67d1 100644 --- a/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt +++ b/Firestore/third_party/abseil-cpp/absl/utility/CMakeLists.txt @@ -31,15 +31,3 @@ absl_header_library( ## TESTS # -# test utility_test -set(UTILITY_TEST_SRC "utility_test.cc") -set(UTILITY_TEST_PUBLIC_LIBRARIES absl::utility) - -absl_test( - TARGET - utility_test - SOURCES - ${UTILITY_TEST_SRC} - PUBLIC_LIBRARIES - ${UTILITY_TEST_PUBLIC_LIBRARIES} -) diff --git a/Firestore/third_party/abseil-cpp/absl/utility/utility.h b/Firestore/third_party/abseil-cpp/absl/utility/utility.h index 1943c4a..595be19 100644 --- a/Firestore/third_party/abseil-cpp/absl/utility/utility.h +++ b/Firestore/third_party/abseil-cpp/absl/utility/utility.h @@ -46,101 +46,10 @@ #include "absl/base/config.h" #include "absl/base/internal/inline_variable.h" -#include "absl/base/internal/invoke.h" #include "absl/meta/type_traits.h" namespace absl { -// integer_sequence -// -// Class template representing a compile-time integer sequence. An instantiation -// of `integer_sequence<T, Ints...>` has a sequence of integers encoded in its -// type through its template arguments (which is a common need when -// working with C++11 variadic templates). `absl::integer_sequence` is designed -// to be a drop-in replacement for C++14's `std::integer_sequence`. -// -// Example: -// -// template< class T, T... Ints > -// void user_function(integer_sequence<T, Ints...>); -// -// int main() -// { -// // user_function's `T` will be deduced to `int` and `Ints...` -// // will be deduced to `0, 1, 2, 3, 4`. -// user_function(make_integer_sequence<int, 5>()); -// } -template <typename T, T... Ints> -struct integer_sequence { - using value_type = T; - static constexpr size_t size() noexcept { return sizeof...(Ints); } -}; - -// index_sequence -// -// A helper template for an `integer_sequence` of `size_t`, -// `absl::index_sequence` is designed to be a drop-in replacement for C++14's -// `std::index_sequence`. -template <size_t... Ints> -using index_sequence = integer_sequence<size_t, Ints...>; - -namespace utility_internal { - -template <typename Seq, size_t SeqSize, size_t Rem> -struct Extend; - -// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency. -template <typename T, T... Ints, size_t SeqSize> -struct Extend<integer_sequence<T, Ints...>, SeqSize, 0> { - using type = integer_sequence<T, Ints..., (Ints + SeqSize)...>; -}; - -template <typename T, T... Ints, size_t SeqSize> -struct Extend<integer_sequence<T, Ints...>, SeqSize, 1> { - using type = integer_sequence<T, Ints..., (Ints + SeqSize)..., 2 * SeqSize>; -}; - -// Recursion helper for 'make_integer_sequence<T, N>'. -// 'Gen<T, N>::type' is an alias for 'integer_sequence<T, 0, 1, ... N-1>'. -template <typename T, size_t N> -struct Gen { - using type = - typename Extend<typename Gen<T, N / 2>::type, N / 2, N % 2>::type; -}; - -template <typename T> -struct Gen<T, 0> { - using type = integer_sequence<T>; -}; - -} // namespace utility_internal - -// Compile-time sequences of integers - -// make_integer_sequence -// -// This template alias is equivalent to -// `integer_sequence<int, 0, 1, ..., N-1>`, and is designed to be a drop-in -// replacement for C++14's `std::make_integer_sequence`. -template <typename T, T N> -using make_integer_sequence = typename utility_internal::Gen<T, N>::type; - -// make_index_sequence -// -// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`, -// and is designed to be a drop-in replacement for C++14's -// `std::make_index_sequence`. -template <size_t N> -using make_index_sequence = make_integer_sequence<size_t, N>; - -// index_sequence_for -// -// Converts a typename pack into an index sequence of the same length, and -// is designed to be a drop-in replacement for C++14's -// `std::index_sequence_for()` -template <typename... Ts> -using index_sequence_for = make_index_sequence<sizeof...(Ts)>; - // Tag types #ifdef ABSL_HAVE_STD_OPTIONAL @@ -161,27 +70,6 @@ ABSL_INTERNAL_INLINE_CONSTEXPR(in_place_t, in_place, {}); #endif // ABSL_HAVE_STD_OPTIONAL -#ifdef ABSL_HAVE_STD_ANY -using std::in_place_type_t; -#else - -// in_place_type_t -// -// Tag type used for in-place construction when the type to construct needs to -// be specified, such as with `absl::any`, designed to be a drop-in replacement -// for C++17's `std::in_place_type_t`. -template <typename T> -struct in_place_type_t {}; -#endif // ABSL_HAVE_STD_ANY - -// in_place_index_t -// -// Tag type used for in-place construction when the type to construct needs to -// be specified, such as with `absl::any`, designed to be a drop-in replacement -// for C++17's `std::in_place_index_t`. -template <size_t I> -struct in_place_index_t {}; - // Constexpr move and forward // move() @@ -203,62 +91,6 @@ constexpr T&& forward( return static_cast<T&&>(t); } -namespace utility_internal { -// Helper method for expanding tuple into a called method. -template <typename Functor, typename Tuple, std::size_t... Indexes> -auto apply_helper(Functor&& functor, Tuple&& t, index_sequence<Indexes...>) - -> decltype(absl::base_internal::Invoke( - absl::forward<Functor>(functor), - std::get<Indexes>(absl::forward<Tuple>(t))...)) { - return absl::base_internal::Invoke( - absl::forward<Functor>(functor), - std::get<Indexes>(absl::forward<Tuple>(t))...); -} - -} // namespace utility_internal - -// apply -// -// Invokes a Callable using elements of a tuple as its arguments. -// Each element of the tuple corresponds to an argument of the call (in order). -// Both the Callable argument and the tuple argument are perfect-forwarded. -// For member-function Callables, the first tuple element acts as the `this` -// pointer. `absl::apply` is designed to be a drop-in replacement for C++17's -// `std::apply`. Unlike C++17's `std::apply`, this is not currently `constexpr`. -// -// Example: -// -// class Foo{void Bar(int);}; -// void user_function(int, std::string); -// void user_function(std::unique_ptr<Foo>); -// -// int main() -// { -// std::tuple<int, std::string> tuple1(42, "bar"); -// // Invokes the user function overload on int, std::string. -// absl::apply(&user_function, tuple1); -// -// auto foo = absl::make_unique<Foo>(); -// std::tuple<Foo*, int> tuple2(foo.get(), 42); -// // Invokes the method Bar on foo with one argument 42. -// absl::apply(&Foo::Bar, foo.get(), 42); -// -// std::tuple<std::unique_ptr<Foo>> tuple3(absl::make_unique<Foo>()); -// // Invokes the user function that takes ownership of the unique -// // pointer. -// absl::apply(&user_function, std::move(tuple)); -// } -template <typename Functor, typename Tuple> -auto apply(Functor&& functor, Tuple&& t) - -> decltype(utility_internal::apply_helper( - absl::forward<Functor>(functor), absl::forward<Tuple>(t), - absl::make_index_sequence<std::tuple_size< - typename std::remove_reference<Tuple>::type>::value>{})) { - return utility_internal::apply_helper( - absl::forward<Functor>(functor), absl::forward<Tuple>(t), - absl::make_index_sequence<std::tuple_size< - typename std::remove_reference<Tuple>::type>::value>{}); -} } // namespace absl #endif // ABSL_UTILITY_UTILITY_H_ |