Add move constructors and assignment operators to wpilibc (#1314)

Fixes #898.
This commit is contained in:
Tyler Veness
2018-09-24 00:08:25 -07:00
committed by Peter Johnson
parent b1965f74a8
commit 1aa8446725
136 changed files with 764 additions and 89 deletions

View File

@@ -8,6 +8,7 @@
#include "frc/AnalogGyro.h"
#include <climits>
#include <utility>
#include <hal/AnalogGyro.h>
#include <hal/Errors.h>
@@ -64,6 +65,20 @@ AnalogGyro::AnalogGyro(std::shared_ptr<AnalogInput> channel, int center,
AnalogGyro::~AnalogGyro() { HAL_FreeAnalogGyro(m_gyroHandle); }
AnalogGyro::AnalogGyro(AnalogGyro&& rhs)
: GyroBase(std::move(rhs)), m_analog(std::move(rhs.m_analog)) {
std::swap(m_gyroHandle, rhs.m_gyroHandle);
}
AnalogGyro& AnalogGyro::operator=(AnalogGyro&& rhs) {
GyroBase::operator=(std::move(rhs));
m_analog = std::move(rhs.m_analog);
std::swap(m_gyroHandle, rhs.m_gyroHandle);
return *this;
}
double AnalogGyro::GetAngle() const {
if (StatusIsFatal()) return 0.0;
int32_t status = 0;