Я получаю непредсказуемое поведение при передаче функции const string
в качестве параметра.
У меня есть эта функция:
std::string getStatusByTopic(const std::string topic){
if (topic.compare(TOPIC_WP_SM_CMD) == 0)
return state_to_string(STATUSES::WP_HANDLER_STATUS);
}
Который еще не полностью реализован.
И у меня есть эта функция:
InsertStatus(getStatusByTopic(TOPIC_WP_SM_CMD),msg);
Который объявлен как:
void Msp::InsertStatus(const std::string status_topic, const std_msgs::String::ConstPtr& new_status)
У меня есть 2 вопроса:
Эти функции были успешно скомпилированы, даже если существует возможное использование, когда getStatusByTopic()
ничего не возвращает, когда его определенный возвращаемый тип равен string . Как это возможно?
Когда код выполняется, в сценарии, который и getStatusByTopic(TOPIC_WP_SM_CMD)
ничего не возвращает. Theres нет ошибок времени выполнения, более того - TOPIC_WP_SM_CMD передается в качестве параметра в InsertStatus()
(который определен как "/ some / topic /"). Вау, это возможно?
Спасибо.