diff --git a/wpilibc/src/main/native/cpp/smartdashboard/Field2d.cpp b/wpilibc/src/main/native/cpp/smartdashboard/Field2d.cpp index 2911d282ed..231654d1b1 100644 --- a/wpilibc/src/main/native/cpp/smartdashboard/Field2d.cpp +++ b/wpilibc/src/main/native/cpp/smartdashboard/Field2d.cpp @@ -17,6 +17,18 @@ Field2d::Field2d() { m_objects[0]->SetPose(Pose2d{}); } +Field2d::Field2d(Field2d&& rhs) { + std::swap(m_table, rhs.m_table); + std::swap(m_objects, rhs.m_objects); +} + +Field2d& Field2d::operator=(Field2d&& rhs) { + std::swap(m_table, rhs.m_table); + std::swap(m_objects, rhs.m_objects); + + return *this; +} + void Field2d::SetRobotPose(const Pose2d& pose) { std::scoped_lock lock(m_mutex); m_objects[0]->SetPose(pose); diff --git a/wpilibc/src/main/native/cpp/smartdashboard/FieldObject2d.cpp b/wpilibc/src/main/native/cpp/smartdashboard/FieldObject2d.cpp index a3e55b907e..a36cc8dc49 100644 --- a/wpilibc/src/main/native/cpp/smartdashboard/FieldObject2d.cpp +++ b/wpilibc/src/main/native/cpp/smartdashboard/FieldObject2d.cpp @@ -9,6 +9,20 @@ using namespace frc; +FieldObject2d::FieldObject2d(FieldObject2d&& rhs) { + std::swap(m_name, rhs.m_name); + std::swap(m_entry, rhs.m_entry); + std::swap(m_poses, rhs.m_poses); +} + +FieldObject2d& FieldObject2d::operator=(FieldObject2d&& rhs) { + std::swap(m_name, rhs.m_name); + std::swap(m_entry, rhs.m_entry); + std::swap(m_poses, rhs.m_poses); + + return *this; +} + void FieldObject2d::SetPose(const Pose2d& pose) { SetPoses(wpi::makeArrayRef(pose)); } diff --git a/wpilibc/src/main/native/include/frc/AnalogGyro.h b/wpilibc/src/main/native/include/frc/AnalogGyro.h index b59df5bf64..24b7e12085 100644 --- a/wpilibc/src/main/native/include/frc/AnalogGyro.h +++ b/wpilibc/src/main/native/include/frc/AnalogGyro.h @@ -104,8 +104,8 @@ class AnalogGyro : public GyroBase { ~AnalogGyro() override; - AnalogGyro(AnalogGyro&& rhs); - AnalogGyro& operator=(AnalogGyro&& rhs); + AnalogGyro(AnalogGyro&& rhs) = default; + AnalogGyro& operator=(AnalogGyro&& rhs) = default; /** * Return the actual angle in degrees that the robot is currently facing. diff --git a/wpilibc/src/main/native/include/frc/smartdashboard/Field2d.h b/wpilibc/src/main/native/include/frc/smartdashboard/Field2d.h index d51ebed605..f3eb620b3f 100644 --- a/wpilibc/src/main/native/include/frc/smartdashboard/Field2d.h +++ b/wpilibc/src/main/native/include/frc/smartdashboard/Field2d.h @@ -47,6 +47,9 @@ class Field2d : public Sendable { Field2d(); + Field2d(Field2d&& rhs); + Field2d& operator=(Field2d&& rhs); + /** * Set the robot pose from a Pose object. * diff --git a/wpilibc/src/main/native/include/frc/smartdashboard/FieldObject2d.h b/wpilibc/src/main/native/include/frc/smartdashboard/FieldObject2d.h index f6ad93b4ed..31e768a31a 100644 --- a/wpilibc/src/main/native/include/frc/smartdashboard/FieldObject2d.h +++ b/wpilibc/src/main/native/include/frc/smartdashboard/FieldObject2d.h @@ -36,6 +36,9 @@ class FieldObject2d { FieldObject2d(std::string&& name, const private_init&) : m_name{std::move(name)} {} + FieldObject2d(FieldObject2d&& rhs); + FieldObject2d& operator=(FieldObject2d&& rhs); + /** * Set the pose from a Pose object. *