Remove confusing operator overload in user_api.cc

Explicitly add const_cast. This doesn't change the previous behaviour, just makes it explicit.

PiperOrigin-RevId: 772486471
Change-Id: I942bd4effed93a366089411ca18461cad52bff88
This commit is contained in:
Nimrod Gileadi
2025-06-17 08:33:38 -07:00
committed by Copybara-Service
parent 998769a995
commit d9aae1521a
+8 -20
View File
@@ -41,24 +41,6 @@ using mujoco::user::StringToVector;
static constexpr std::size_t kGlobalCacheSize = 500 * (1 << 20);
// prepend prefix
template <typename T>
static T& operator+(std::string_view prefix, T& base) {
base.prefix = std::string(prefix);
return base;
}
// append suffix
template <typename T>
static T& operator+(T& base, std::string_view suffix) {
base.suffix = std::string(suffix);
return base;
}
// create model
mjSpec* mj_makeSpec() {
mjCModel* modelC = new mjCModel;
@@ -135,8 +117,11 @@ static void SetFrame(mjsBody* body, mjtObj objtype, mjsFrame* frame) {
// attach body to a frame of the parent
static mjsElement* attachBody(mjCFrame* parent, const mjCBody* child,
const char* prefix, const char* suffix) {
mjCBody* mutable_child = const_cast<mjCBody*>(child);
mutable_child->prefix = prefix;
mutable_child->suffix = suffix;
try {
*parent += std::string(prefix) + *(mjCBody*)child + std::string(suffix);
*parent += *mutable_child;
} catch (mjCError& e) {
parent->model->SetError(e);
return nullptr;
@@ -151,8 +136,11 @@ static mjsElement* attachBody(mjCFrame* parent, const mjCBody* child,
// attach frame to a parent body
static mjsElement* attachFrame(mjCBody* parent, const mjCFrame* child,
const char* prefix, const char* suffix) {
mjCFrame* mutable_child = const_cast<mjCFrame*>(child);
mutable_child->prefix = prefix;
mutable_child->suffix = suffix;
try {
*parent += std::string(prefix) + *(mjCFrame*)child + std::string(suffix);
*parent += *mutable_child;
} catch (mjCError& e) {
parent->model->SetError(e);
return nullptr;