mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-27 02:01:42 +00:00
Upgrade to C++20 (#4239)
* Use explicit this capture required by C++20 * Use C++20 span * Replace wpi::numbers with std::numbers * Fix C++20 clang-tidy warning false positive in fmt * Remove ciso646 include since C++20 removed that header * Fix global-buffer-overflow asan warnings in ntcore tests * Add DIOSetProxy constructor to HAL * Upgrade MSVC compiler to 2022 * Bump native-utils to 2023.2.7 (changes to std=c++20) Co-authored-by: Peter Johnson <johnson.peter@gmail.com>
This commit is contained in:
@@ -5,21 +5,22 @@
|
||||
#pragma once
|
||||
|
||||
#include <cassert>
|
||||
|
||||
#include "wpi/span.h"
|
||||
#include <span>
|
||||
|
||||
namespace wpi {
|
||||
|
||||
/// Drop the first \p N elements of the array.
|
||||
template <typename T>
|
||||
constexpr span<T> drop_front(span<T> in, typename span<T>::size_type n = 1) {
|
||||
constexpr std::span<T> drop_front(std::span<T> in,
|
||||
typename std::span<T>::size_type n = 1) {
|
||||
assert(in.size() >= n && "Dropping more elements than exist");
|
||||
return in.subspan(n, in.size() - n);
|
||||
}
|
||||
|
||||
/// Drop the last \p N elements of the array.
|
||||
template <typename T>
|
||||
constexpr span<T> drop_back(span<T> in, typename span<T>::size_type n = 1) {
|
||||
constexpr std::span<T> drop_back(std::span<T> in,
|
||||
typename std::span<T>::size_type n = 1) {
|
||||
assert(in.size() >= n && "Dropping more elements than exist");
|
||||
return in.subspan(0, in.size() - n);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user