From 6c6cecefa753d1c402af364cba110352dcc26a58 Mon Sep 17 00:00:00 2001 From: Marcin Kowalczyk Date: Wed, 20 Mar 2024 13:43:36 +0100 Subject: [PATCH] Prefer to construct `AnyDependency` with `absl::in_place_type` instead of by default construction and then calling `Emplace()`. PiperOrigin-RevId: 617484103 --- riegeli/lines/BUILD | 2 ++ riegeli/lines/text_reader.h | 17 +++++++---------- riegeli/lines/text_writer.h | 17 +++++++---------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/riegeli/lines/BUILD b/riegeli/lines/BUILD index 9752fb32..bea58871 100644 --- a/riegeli/lines/BUILD +++ b/riegeli/lines/BUILD @@ -65,6 +65,7 @@ cc_library( "@com_google_absl//absl/base:core_headers", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", + "@com_google_absl//absl/utility", ], ) @@ -90,5 +91,6 @@ cc_library( "@com_google_absl//absl/base:core_headers", "@com_google_absl//absl/status", "@com_google_absl//absl/strings", + "@com_google_absl//absl/utility", ], ) diff --git a/riegeli/lines/text_reader.h b/riegeli/lines/text_reader.h index 023baf2a..71bac0fb 100644 --- a/riegeli/lines/text_reader.h +++ b/riegeli/lines/text_reader.h @@ -24,6 +24,7 @@ #include "absl/base/attributes.h" #include "absl/base/optimization.h" #include "absl/status/status.h" +#include "absl/utility/utility.h" #include "riegeli/base/any_dependency.h" #include "riegeli/base/assert.h" #include "riegeli/base/dependency.h" @@ -339,20 +340,16 @@ template ::value, int>> AnyTextReader MakeAnyTextReader(Initializer src, AnyTextReaderOptions options) { - AnyTextReader result; switch (options.newline()) { case ReadNewline::kLf: - result.template Emplace>( - std::move(src), options.buffer_options()); - return result; + return {absl::in_place_type>, + std::move(src), options.buffer_options()}; case ReadNewline::kCrLfOrLf: - result.template Emplace>( - std::move(src), options.buffer_options()); - return result; + return {absl::in_place_type>, + std::move(src), options.buffer_options()}; case ReadNewline::kAny: - result.template Emplace>( - std::move(src), options.buffer_options()); - return result; + return {absl::in_place_type>, + std::move(src), options.buffer_options()}; } RIEGELI_ASSERT_UNREACHABLE() << "Unknown newline: " << static_cast(options.newline()); diff --git a/riegeli/lines/text_writer.h b/riegeli/lines/text_writer.h index 260059a1..a6201350 100644 --- a/riegeli/lines/text_writer.h +++ b/riegeli/lines/text_writer.h @@ -23,6 +23,7 @@ #include "absl/base/optimization.h" #include "absl/status/status.h" #include "absl/strings/string_view.h" +#include "absl/utility/utility.h" #include "riegeli/base/any_dependency.h" #include "riegeli/base/assert.h" #include "riegeli/base/dependency.h" @@ -296,20 +297,16 @@ template ::value, int>> AnyTextWriter MakeAnyTextWriter(Initializer dest, AnyTextWriterOptions options) { - AnyTextWriter result; switch (options.newline()) { case WriteNewline::kLf: - result.template Emplace>( - std::move(dest), options.buffer_options()); - return result; + return {absl::in_place_type>, + std::move(dest), options.buffer_options()}; case WriteNewline::kCr: - result.template Emplace>( - std::move(dest), options.buffer_options()); - return result; + return {absl::in_place_type>, + std::move(dest), options.buffer_options()}; case WriteNewline::kCrLf: - result.template Emplace>( - std::move(dest), options.buffer_options()); - return result; + return {absl::in_place_type>, + std::move(dest), options.buffer_options()}; } RIEGELI_ASSERT_UNREACHABLE() << "Unknown newline: " << static_cast(options.newline());