You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过初始化列表优雅将类中rank设为const成员(基于MPI_Comm_rank)

解决方案:用立即执行Lambda实现紧凑初始化

你可以直接在构造函数的初始化列表里使用立即执行的Lambda表达式,把辅助函数的逻辑内联进去,不需要额外定义独立的函数:

struct MyRank
{
  int const rank;
  MyRank(MPI_Comm comm) : rank([comm](){ int r; MPI_Comm_rank(comm, &r); return r; }()) {}
};

说明:

  • Lambda表达式捕获了构造函数的参数comm,内部创建临时变量r,调用MPI_Comm_rank获取rank值后返回
  • 末尾的()会立即执行这个Lambda,返回的结果直接用于初始化const成员rank
  • 这种方式把原本辅助函数的逻辑压缩到了初始化列表中,既保持了代码的紧凑性,又满足了const成员必须在初始化列表中初始化的要求

内容的提问来源于stack exchange,提问作者Łukasz Ślusarczyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 23:31:45