C++ 邮箱进入SimGrid

C++ 邮箱进入SimGrid,c++,simgrid,C++,Simgrid,我正在研究simgrid中的邮箱,查看文档中的示例,但是当我尝试编译示例时,会出现错误,主要是在邮箱->获取中。 我将把代码片段放在下面 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\"&quo

我正在研究simgrid中的邮箱,查看文档中的示例,但是当我尝试编译示例时,会出现错误,主要是在邮箱->获取中。 我将把代码片段放在下面

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);
}
if(秩==0){
/*根参与者(秩0)首先发送令牌,然后等待将其接收回来*/
XBT_信息(“主机\%u\”向主机\%s\”发送“令牌”,排名,邻居_邮箱->获取_cname());
std::string msg=“令牌”;
邻居\邮箱->放置(&msg,令牌\大小);
const auto*res=my_mailbox->get();
XBT_INFO(“主机\%u\”接收\%s\,排名,res->c_str());
}否则{
auto*res=my_mailbox->get();
XBT_INFO(“主机\%u\”接收\%s\,排名,res->c_str());
XBT_信息(“主机\%u\”向主机\%s\”发送“令牌”,排名,邻居_邮箱->获取_cname());
邻居\邮箱->放置(分辨率、令牌\大小);
}
该错误发生在const auto res=my_mailbox->getstd::string()中

错误:无法推断类型“auto”和
不允许使用类型名称

替换
auto*res=my_mailbox->get()使用
const auto*res=static_cast(我的邮箱->get())

我猜
我的邮箱->get()
不会返回指针。您确定它没有按值或(
const
?)引用返回
std::string
?)吗?是的,似乎错误毕竟在语法中。我使用
const auto*res=static\u cast(我的邮箱->get())来修复它