mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-30 02:31:44 +00:00
[wpimath, wpiutil] Add wpi::array for compile time size checking (#3087)
The wpimath APIs use std::array, which doesn't do size checking. Passing an array with the wrong size can result in uninitialized elements instead of a compilation error. This is a breaking change but is worthwhile to avoid hard-to-debug errors.
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <array>
|
||||
#include <wpi/array.h>
|
||||
|
||||
#include "Eigen/Core"
|
||||
#include "frc/spline/Spline.h"
|
||||
@@ -29,10 +29,10 @@ class CubicHermiteSpline : public Spline<3> {
|
||||
* @param yFinalControlVector The control vector for the final point in
|
||||
* the y dimension.
|
||||
*/
|
||||
CubicHermiteSpline(std::array<double, 2> xInitialControlVector,
|
||||
std::array<double, 2> xFinalControlVector,
|
||||
std::array<double, 2> yInitialControlVector,
|
||||
std::array<double, 2> yFinalControlVector);
|
||||
CubicHermiteSpline(wpi::array<double, 2> xInitialControlVector,
|
||||
wpi::array<double, 2> xFinalControlVector,
|
||||
wpi::array<double, 2> yInitialControlVector,
|
||||
wpi::array<double, 2> yFinalControlVector);
|
||||
|
||||
protected:
|
||||
/**
|
||||
@@ -72,7 +72,7 @@ class CubicHermiteSpline : public Spline<3> {
|
||||
* @return The control vector matrix for a dimension.
|
||||
*/
|
||||
static Eigen::Vector4d ControlVectorFromArrays(
|
||||
std::array<double, 2> initialVector, std::array<double, 2> finalVector) {
|
||||
wpi::array<double, 2> initialVector, wpi::array<double, 2> finalVector) {
|
||||
return (Eigen::Vector4d() << initialVector[0], initialVector[1],
|
||||
finalVector[0], finalVector[1])
|
||||
.finished();
|
||||
|
||||
Reference in New Issue
Block a user