mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51: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:
@@ -2,7 +2,7 @@
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
#include <wpi/numbers>
|
||||
#include <numbers>
|
||||
|
||||
#include "frc/MathUtil.h"
|
||||
#include "frc/controller/HolonomicDriveController.h"
|
||||
@@ -16,7 +16,7 @@
|
||||
EXPECT_LE(units::math::abs(val1 - val2), eps)
|
||||
|
||||
static constexpr units::meter_t kTolerance{1 / 12.0};
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * wpi::numbers::pi /
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * std::numbers::pi /
|
||||
180.0};
|
||||
|
||||
TEST(HolonomicDriveControllerTest, ReachesReference) {
|
||||
@@ -25,8 +25,8 @@ TEST(HolonomicDriveControllerTest, ReachesReference) {
|
||||
frc::ProfiledPIDController<units::radian>{
|
||||
1.0, 0.0, 0.0,
|
||||
frc::TrapezoidProfile<units::radian>::Constraints{
|
||||
units::radians_per_second_t{2.0 * wpi::numbers::pi},
|
||||
units::radians_per_second_squared_t{wpi::numbers::pi}}}};
|
||||
units::radians_per_second_t{2.0 * std::numbers::pi},
|
||||
units::radians_per_second_squared_t{std::numbers::pi}}}};
|
||||
|
||||
frc::Pose2d robotPose{2.7_m, 23_m, 0_deg};
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
EXPECT_LE(units::math::abs(val1 - val2), eps)
|
||||
|
||||
static constexpr units::meter_t kTolerance{1 / 12.0};
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * wpi::numbers::pi /
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * std::numbers::pi /
|
||||
180.0};
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
EXPECT_LE(units::math::abs(val1 - val2), eps)
|
||||
|
||||
static constexpr units::meter_t kTolerance{1 / 12.0};
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * wpi::numbers::pi /
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * std::numbers::pi /
|
||||
180.0};
|
||||
|
||||
TEST(LTVUnicycleControllerTest, ReachesReference) {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// Open Source Software; you can modify and/or share it under the terms of
|
||||
// the WPILib BSD license file in the root directory of this project.
|
||||
|
||||
#include <wpi/numbers>
|
||||
#include <numbers>
|
||||
|
||||
#include "frc/controller/ProfiledPIDController.h"
|
||||
#include "gtest/gtest.h"
|
||||
@@ -40,8 +40,8 @@ TEST_F(ProfiledPIDInputOutputTest, ContinuousInput1) {
|
||||
|
||||
TEST_F(ProfiledPIDInputOutputTest, ContinuousInput2) {
|
||||
controller->SetP(1);
|
||||
controller->EnableContinuousInput(-units::radian_t{wpi::numbers::pi},
|
||||
units::radian_t{wpi::numbers::pi});
|
||||
controller->EnableContinuousInput(-units::radian_t{std::numbers::pi},
|
||||
units::radian_t{std::numbers::pi});
|
||||
|
||||
static constexpr units::radian_t kSetpoint{-3.4826633343199735};
|
||||
static constexpr units::radian_t kMeasurement{-3.1352207333939606};
|
||||
@@ -52,13 +52,13 @@ TEST_F(ProfiledPIDInputOutputTest, ContinuousInput2) {
|
||||
|
||||
// Error must be less than half the input range at all times
|
||||
EXPECT_LT(units::math::abs(controller->GetSetpoint().position - kMeasurement),
|
||||
units::radian_t{wpi::numbers::pi});
|
||||
units::radian_t{std::numbers::pi});
|
||||
}
|
||||
|
||||
TEST_F(ProfiledPIDInputOutputTest, ContinuousInput3) {
|
||||
controller->SetP(1);
|
||||
controller->EnableContinuousInput(-units::radian_t{wpi::numbers::pi},
|
||||
units::radian_t{wpi::numbers::pi});
|
||||
controller->EnableContinuousInput(-units::radian_t{std::numbers::pi},
|
||||
units::radian_t{std::numbers::pi});
|
||||
|
||||
static constexpr units::radian_t kSetpoint{-3.5176604690006377};
|
||||
static constexpr units::radian_t kMeasurement{3.1191729343822456};
|
||||
@@ -69,13 +69,13 @@ TEST_F(ProfiledPIDInputOutputTest, ContinuousInput3) {
|
||||
|
||||
// Error must be less than half the input range at all times
|
||||
EXPECT_LT(units::math::abs(controller->GetSetpoint().position - kMeasurement),
|
||||
units::radian_t{wpi::numbers::pi});
|
||||
units::radian_t{std::numbers::pi});
|
||||
}
|
||||
|
||||
TEST_F(ProfiledPIDInputOutputTest, ContinuousInput4) {
|
||||
controller->SetP(1);
|
||||
controller->EnableContinuousInput(0_rad,
|
||||
units::radian_t{2.0 * wpi::numbers::pi});
|
||||
units::radian_t{2.0 * std::numbers::pi});
|
||||
|
||||
static constexpr units::radian_t kSetpoint{2.78};
|
||||
static constexpr units::radian_t kMeasurement{3.12};
|
||||
@@ -86,7 +86,7 @@ TEST_F(ProfiledPIDInputOutputTest, ContinuousInput4) {
|
||||
|
||||
// Error must be less than half the input range at all times
|
||||
EXPECT_LT(units::math::abs(controller->GetSetpoint().position - kMeasurement),
|
||||
units::radian_t{wpi::numbers::pi});
|
||||
units::radian_t{std::numbers::pi});
|
||||
}
|
||||
|
||||
TEST_F(ProfiledPIDInputOutputTest, ProportionalGainOutput) {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
EXPECT_LE(units::math::abs(val1 - val2), eps)
|
||||
|
||||
static constexpr units::meter_t kTolerance{1 / 12.0};
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * wpi::numbers::pi /
|
||||
static constexpr units::radian_t kAngularTolerance{2.0 * std::numbers::pi /
|
||||
180.0};
|
||||
|
||||
TEST(RamseteControllerTest, ReachesReference) {
|
||||
|
||||
Reference in New Issue
Block a user