diff options
author | Benjamin Barenblat <bbaren@google.com> | 2020-09-25 17:10:06 -0400 |
---|---|---|
committer | Benjamin Barenblat <bbaren@google.com> | 2020-09-25 17:10:06 -0400 |
commit | 4e1c98fe594d99494ce26e94a77f0358705f227c (patch) | |
tree | a07e9daefa3b5acf716ce89fa1a1c9b500fde795 /absl/strings/internal/str_format/output.h | |
parent | 7a1e14d0d29736ba9c2884d0ce81fc0af92f6ab3 (diff) | |
parent | b56cbdd23834a65682c0b46f367f8679e83bc894 (diff) |
Merge new upstream LTS 20200923
Diffstat (limited to 'absl/strings/internal/str_format/output.h')
-rw-r--r-- | absl/strings/internal/str_format/output.h | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/absl/strings/internal/str_format/output.h b/absl/strings/internal/str_format/output.h index 28b288b7..8030dae0 100644 --- a/absl/strings/internal/str_format/output.h +++ b/absl/strings/internal/str_format/output.h @@ -30,9 +30,6 @@ namespace absl { ABSL_NAMESPACE_BEGIN - -class Cord; - namespace str_format_internal { // RawSink implementation that writes into a char* buffer. @@ -77,12 +74,6 @@ inline void AbslFormatFlush(std::ostream* out, string_view s) { out->write(s.data(), s.size()); } -template <class AbslCord, typename = typename std::enable_if< - std::is_same<AbslCord, absl::Cord>::value>::type> -inline void AbslFormatFlush(AbslCord* out, string_view s) { - out->Append(s); -} - inline void AbslFormatFlush(FILERawSink* sink, string_view v) { sink->Write(v); } @@ -91,10 +82,11 @@ inline void AbslFormatFlush(BufferRawSink* sink, string_view v) { sink->Write(v); } +// This is a SFINAE to get a better compiler error message when the type +// is not supported. template <typename T> -auto InvokeFlush(T* out, string_view s) - -> decltype(str_format_internal::AbslFormatFlush(out, s)) { - str_format_internal::AbslFormatFlush(out, s); +auto InvokeFlush(T* out, string_view s) -> decltype(AbslFormatFlush(out, s)) { + AbslFormatFlush(out, s); } } // namespace str_format_internal |