diff --git a/source/common/http/conn_manager_impl.h b/source/common/http/conn_manager_impl.h index b84a814120f14..df172dac16b2e 100644 --- a/source/common/http/conn_manager_impl.h +++ b/source/common/http/conn_manager_impl.h @@ -231,19 +231,20 @@ class ConnectionManagerImpl : Logger::Loggable, // TODO(snowp): Create shared OptRef/OptConstRef helpers Http::RequestHeaderMapOptRef requestHeaders() override { - return request_headers_ ? std::make_optional(std::ref(*request_headers_)) : absl::nullopt; + return request_headers_ ? absl::make_optional(std::ref(*request_headers_)) : absl::nullopt; } Http::RequestTrailerMapOptRef requestTrailers() override { - return request_trailers_ ? std::make_optional(std::ref(*request_trailers_)) : absl::nullopt; + return request_trailers_ ? absl::make_optional(std::ref(*request_trailers_)) : absl::nullopt; } Http::ResponseHeaderMapOptRef continueHeaders() override { - return continue_headers_ ? std::make_optional(std::ref(*continue_headers_)) : absl::nullopt; + return continue_headers_ ? absl::make_optional(std::ref(*continue_headers_)) : absl::nullopt; } Http::ResponseHeaderMapOptRef responseHeaders() override { - return response_headers_ ? std::make_optional(std::ref(*response_headers_)) : absl::nullopt; + return response_headers_ ? absl::make_optional(std::ref(*response_headers_)) : absl::nullopt; } Http::ResponseTrailerMapOptRef responseTrailers() override { - return response_trailers_ ? std::make_optional(std::ref(*response_trailers_)) : absl::nullopt; + return response_trailers_ ? absl::make_optional(std::ref(*response_trailers_)) + : absl::nullopt; } void endStream() override { diff --git a/tools/code_format/check_format.py b/tools/code_format/check_format.py index 5ac0e628bdcc3..f7fb92f319bb0 100755 --- a/tools/code_format/check_format.py +++ b/tools/code_format/check_format.py @@ -691,6 +691,8 @@ def checkSourceLine(line, file_path, reportError): # See: https://github.com/envoyproxy/envoy/issues/12341 if tokenInLine("std::any", line): reportError("Don't use std::any; use absl::any instead") + if tokenInLine("std::make_optional", line): + reportError("Don't use std::make_optional; use absl::make_optional instead") if tokenInLine("std::optional", line): reportError("Don't use std::optional; use absl::optional instead") if tokenInLine("std::variant", line): diff --git a/tools/code_format/check_format_test_helper.py b/tools/code_format/check_format_test_helper.py index da3f576605aa1..fcfaf8b9218ef 100755 --- a/tools/code_format/check_format_test_helper.py +++ b/tools/code_format/check_format_test_helper.py @@ -243,6 +243,8 @@ def runChecks(): "std_unordered_set.cc", "Don't use std::unordered_set; use absl::flat_hash_set instead " + "or absl::node_hash_set if pointer stability of keys/values is required") errors += checkUnfixableError("std_any.cc", "Don't use std::any; use absl::any instead") + errors += checkUnfixableError("std_make_optional.cc", + "Don't use std::make_optional; use absl::make_optional instead") errors += checkUnfixableError("std_optional.cc", "Don't use std::optional; use absl::optional instead") errors += checkUnfixableError("std_variant.cc", diff --git a/tools/testdata/check_format/std_make_optional.cc b/tools/testdata/check_format/std_make_optional.cc new file mode 100644 index 0000000000000..b629835d62496 --- /dev/null +++ b/tools/testdata/check_format/std_make_optional.cc @@ -0,0 +1,8 @@ +#include + +namespace Envoy { + void foo() { + uint64_t value = 1; + uint64_t optional_value = std::make_optional(value); + } +} // namespace Envoy