1 // Copyright 2017 The Abseil Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // https://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #ifndef ABSL_UTILITY_UTILITY_H_ 16 #define ABSL_UTILITY_UTILITY_H_ 17 18 #include <cstddef> 19 #include <cstdlib> 20 #include <tuple> 21 #include <utility> 22 23 #include "absl/base/config.h" 24 25 // TODO(b/290784225): Include what you use cleanup required. 26 #include "absl/meta/type_traits.h" 27 28 namespace absl { 29 ABSL_NAMESPACE_BEGIN 30 31 // Historical note: Abseil once provided implementations of these 32 // abstractions for platforms that had not yet provided them. Those 33 // platforms are no longer supported. New code should simply use the 34 // the ones from std directly. 35 using std::apply; 36 using std::exchange; 37 using std::forward; 38 using std::in_place; 39 using std::in_place_index; 40 using std::in_place_index_t; 41 using std::in_place_t; 42 using std::in_place_type; 43 using std::in_place_type_t; 44 using std::index_sequence; 45 using std::index_sequence_for; 46 using std::integer_sequence; 47 using std::make_from_tuple; 48 using std::make_index_sequence; 49 using std::make_integer_sequence; 50 using std::move; 51 52 ABSL_NAMESPACE_END 53 } // namespace absl 54 55 #endif // ABSL_UTILITY_UTILITY_H_ 56