Параметры класса в типе варианта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

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