mirror of
https://github.com/abseil/abseil-cpp.git
synced 2026-06-04 12:07:05 +08:00
Mark non-modifying container algorithms as constexpr for C++20.
This change marks Abseil's non-modifying sequence operations including absl::linear_search and absl::c_linear_search as constexpr when building with C++20. PiperOrigin-RevId: 659812405 Change-Id: I8dc2cee873f30531b2eb8fb3da12085505a43a1a
This commit is contained in:
committed by
Copybara-Service
parent
809e5de7b9
commit
00478de3e9
@@ -14,11 +14,9 @@
|
||||
|
||||
#include "absl/algorithm/algorithm.h"
|
||||
|
||||
#include <algorithm>
|
||||
#include <list>
|
||||
#include <array>
|
||||
#include <vector>
|
||||
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
#include "absl/base/config.h"
|
||||
|
||||
@@ -47,4 +45,16 @@ TEST_F(LinearSearchTest, linear_searchConst) {
|
||||
absl::linear_search(const_container->begin(), const_container->end(), 4));
|
||||
}
|
||||
|
||||
#if defined(ABSL_INTERNAL_CPLUSPLUS_LANG) && \
|
||||
ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L
|
||||
|
||||
TEST_F(LinearSearchTest, Constexpr) {
|
||||
static constexpr std::array<int, 3> kArray = {1, 2, 3};
|
||||
static_assert(absl::linear_search(kArray.begin(), kArray.end(), 3));
|
||||
static_assert(!absl::linear_search(kArray.begin(), kArray.end(), 4));
|
||||
}
|
||||
|
||||
#endif // defined(ABSL_INTERNAL_CPLUSPLUS_LANG) &&
|
||||
// ABSL_INTERNAL_CPLUSPLUS_LANG >= 202002L
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user