Skip to content

Commit df68516

Browse files
committed
fix ambiguous conversion
1 parent 721364e commit df68516

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

Diff for: Executor/src/skill_action.cpp

+25-4
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,33 @@ BT::NodeStatus SkillAction::convertResultToStatus(const std::string &result_stri
106106
const auto &output = json["outputs"];
107107
for (auto it = output.begin(); it != output.end(); it++)
108108
{
109+
109110
if (it.value().is_boolean())
110111
setOutput(it.key(), it.value().get<bool>());
111-
else if (it.value().is_number_integer())
112-
setOutput(it.key(), it.value().get<int>());
113-
else if (it.value().is_number_float())
114-
setOutput(it.key(), it.value().get<double>());
112+
else if (it.value().is_number_float()) {
113+
try {
114+
setOutput(it.key(), it.value().get<double>());
115+
continue;
116+
}
117+
catch (...){};
118+
try {
119+
setOutput(it.key(), it.value().get<float>());
120+
continue;
121+
}
122+
catch (...){};
123+
}
124+
else if (it.value().is_number_integer()) {
125+
try {
126+
setOutput(it.key(), it.value().get<int>());
127+
continue;
128+
}
129+
catch (...){};
130+
try {
131+
setOutput(it.key(), it.value().get<double>());
132+
continue;
133+
}
134+
catch (...){};
135+
}
115136
else if (it.value().is_string())
116137
setOutput(it.key(), it.value().get<std::string>());
117138
else

0 commit comments

Comments
 (0)