我正在学习simgrid中的邮箱,查看文档中的示例,但是当我试图编译这些示例时,会出现错误,主要是邮箱-> get中的错误。我会把代码片段放在下面。
if (rank == 0) {
/* The root actor (rank 0) first sends the token then waits to receive it back */
XBT_INFO("Host \"%u\" send 'Token' to Host \"%s\"", rank, neighbor_mailbox->get_cname());
std::string msg = "Token";
neighbor_mailbox->put(&msg, token_size);
const auto* res = my_mailbox->get<std::string>();
XBT_INFO("Host \"%u\" received \"%s\"", rank, res->c_str());
} else {
auto* res = my_mailbox->get<std::string>();
XBT_INFO("Host \"%u\" received \"%s\"", rank, res->c_str());
XBT_INFO("Host \"%u\" send 'Token' to Host \"%s\"", rank, neighbor_mailbox->get_cname());
neighbor_mailbox->put(res, token_size);
}此错误发生在const auto =my_mailbox->getstd::string()中;
错误:无法推断类型“auto”,也不允许输入名称
发布于 2021-05-19 14:40:50
将auto* res = my_mailbox->get<std::string>();替换为const auto *res = static_cast<std::string*>(my_mailbox->get());
https://stackoverflow.com/questions/67560043
复制相似问题