Fix std::unique_ptrs using incomplete types

CANTalon declared a std::unique_ptr<CanTalonSRX> with CanTalonSRX as an incomplete type. This causes a compilation error in code using CANTalons. The CANTalonTest didn't catch this because it included ctre/CanTalonSRX.h as well as CANTalon.h. Normal user code doesn't do that.

I reviewed uses of std::unique_ptr elsewhere and determined that PIDCommand may suffer from the same problem. There is no test for PIDCommand to prove otherwise.

Change-Id: I54caf4941927910471ffb7170eb6737ba0e08437
This commit is contained in:
Tyler Veness
2015-07-20 19:58:13 -07:00
parent eb7d55fd59
commit 881dcd08e5
5 changed files with 2 additions and 7 deletions

View File

@@ -9,13 +9,12 @@
#define __PID_COMMAND_H__
#include "Commands/Command.h"
#include "PIDController.h"
#include "PIDSource.h"
#include "PIDOutput.h"
#include <memory>
class PIDController;
class PIDCommand : public Command, public PIDOutput, public PIDSource {
public:
PIDCommand(const std::string &name, double p, double i, double d);

View File

@@ -7,7 +7,6 @@
#include "Commands/PIDCommand.h"
#include "PIDController.h"
#include "float.h"
PIDCommand::PIDCommand(const std::string &name, double p, double i, double d, double f,

View File

@@ -10,14 +10,13 @@
#include "PIDOutput.h"
#include "PIDSource.h"
#include "PIDInterface.h"
#include "ctre/CanTalonSRX.h"
#include "MotorSafetyHelper.h"
#include "LiveWindow/LiveWindowSendable.h"
#include "tables/ITable.h"
#include <memory>
class CanTalonSRX;
/**
* CTRE Talon SRX Speed Controller with CAN Control
*/

View File

@@ -6,7 +6,6 @@
#include "CANTalon.h"
#include "WPIErrors.h"
#include "ctre/CanTalonSRX.h"
#include <unistd.h> // usleep
#include <sstream>

View File

@@ -7,7 +7,6 @@
#include "WPILib.h"
#include "gtest/gtest.h"
#include "TestBench.h"
#include "ctre/CanTalonSRX.h"
const int deviceId = 0;