46 #ifndef ABSL_STRINGS_STR_JOIN_H_
47 #define ABSL_STRINGS_STR_JOIN_H_
51 #include <initializer_list>
55 #include <type_traits>
58 #include "absl/base/macros.h"
59 #include "absl/strings/internal/str_join_internal.h"
60 #include "absl/strings/string_view.h"
103 return strings_internal::AlphaNumFormatterImpl();
110 return strings_internal::StreamFormatterImpl();
118 template <
typename FirstFormatter,
typename SecondFormatter>
119 inline strings_internal::PairFormatterImpl<FirstFormatter, SecondFormatter>
121 return strings_internal::PairFormatterImpl<FirstFormatter, SecondFormatter>(
127 inline strings_internal::PairFormatterImpl<
128 strings_internal::AlphaNumFormatterImpl,
129 strings_internal::AlphaNumFormatterImpl>
140 template <
typename Formatter>
143 return strings_internal::DereferenceFormatterImpl<Formatter>(
144 std::forward<Formatter>(f));
149 inline strings_internal::DereferenceFormatterImpl<
150 strings_internal::AlphaNumFormatterImpl>
152 return strings_internal::DereferenceFormatterImpl<
244 template <
typename Iterator,
typename Formatter>
250 template <
typename Range,
typename Formatter>
256 template <
typename T,
typename Formatter>
268 template <
typename Iterator>
273 template <
typename Range>
278 template <
typename T>
284 template <
typename...
T>
293 #endif // ABSL_STRINGS_STR_JOIN_H_