Параметры класса в типе вариантаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Параметры класса в типе варианта

Сообщение Anonymous »

Я пытаюсь сделать класс, который заставит робота поворот к углу или точке в плоскости координат, но я продолжаю получать ошибку, когда пытаюсь использовать функцию, которую я выполнил, и не могу понять, как ее исправить. < /p>
Функция: < /p>

Код: Выделить всё

void darklib::Chassis::turnTo(std::variant target, double speed, double exitVal){
double angle;
if(std::holds_alternative(target)){
darklib::Pose pose = std::get(target);
angle = darklib::radToDeg(atan2((pose.x - position.x),(pose.y - position.y)));
}
else if(std::holds_alternative(target)){
angle = std::get(target);
}
double TurnVel = angular_pid.compute(angle,position.theta);
setMotorSpeeds(TurnVel * speed, -TurnVel * speed);
}
< /code>
Использование: < /p>
chassis.turnTo({0,0,0}, 1, 0.1);
< /code>
ошибка: < /p>
no instance of constructor "std::variant::variant [with _Types=]" matches the argument list
работает, если я вводим Darklib :: pose (0,0,0) вместо {0,0,0} , но я хотел бы, чтобы он работал так, как это происходит в примере выше.

Подробнее здесь: https://stackoverflow.com/questions/797 ... riant-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»