如何循环访问 boost::mpl::list?

2023-11-22

据我所知,这是

#include <boost/mpl/list.hpp>
#include <algorithm>
namespace mpl = boost::mpl;

class RunAround {};
class HopUpAndDown {};
class Sleep {};

template<typename Instructions> int doThis();
template<> int doThis<RunAround>()    { /* run run run.. */ return 3; }
template<> int doThis<HopUpAndDown>() { /* hop hop hop.. */ return 2; }
template<> int doThis<Sleep>()        { /* zzz.. */ return -2; }


int main()
{
    typedef mpl::list<RunAround, HopUpAndDown, Sleep> acts;

//  std::for_each(mpl::begin<acts>::type, mpl::end<acts>::type, doThis<????>);

    return 0;
};

我该如何完成这个? (我不知道是否应该使用 std::for_each,只是根据此处的另一个答案进行猜测)


Use mpl::for_each用于类型列表的运行时迭代。例如。:

struct do_this_wrapper {
    template<typename U> void operator()(U) {
        doThis<U>();
    }
};

int main() {
    typedef boost::mpl::list<RunAround, HopUpAndDown, Sleep> acts;
    boost::mpl::for_each<acts>(do_this_wrapper());    
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何循环访问 boost::mpl::list? 的相关文章

  • 输出 objdump -t 的输出中的“.hidden”是什么意思?

    Example objdump Logger cpp o t 00000000 g F text 00000000 hidden sti 10 Logger cpp 0b2ae32b 这意味着符号的可见性被隐藏 https develope
  • 为什么这些冲突出现在以下 XML 的 yacc 语法中

    我有以下 XML 语法 效果很好 program lt ID attribute list gt root root lt ID attribute list gt node list lt ID gt node list node s n
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • Java 相当于 C# 的 async/await?

    我是一名普通的 C 开发人员 但偶尔也会使用 Java 开发应用程序 我想知道 Java 中是否有相当于 C async await 的东西 简单来说 java 相当于 async Task
  • tmpnam 的 C/C++ 线程安全性?

    我需要使用tmpnamC 中的函数 但我需要了解它的线程安全性 也就是说 如果我有多个线程 每个线程都需要为临时文件获取不同的名称 我是否可以保证每个线程都会收到具有不同名称的文件 tmpnam 仅保证该文件当时不存在 但它可能会在您自己创
  • 表达式:_BLOCK_TYPE_IS_VALID(pHead->nBlockUse) 错误

    此错误发生在运行时 我不确定是什么原因导致的 代码对我来说看起来是正确的 include
  • esp8266互联网交换机问题

    我正在尝试制作一个门继电器开关系统 我可以通过端口转发从任何地方进行操作 我找到了一个非常有用的指南和代码 我的程序基于 https openhomeautomation net control a lamp remotely using
  • 如何使用 Unity 动态注册通用类?

    我有一个包含很多类 300 和 BaseClass 的程序集 我想用接口注册一个泛型类 统一后 您必须在 Name如果你想解析接口的对象数组 我想要一个对象数组主视图模型自动地 有没有办法通过反射来自动执行此操作 有什么建议么 示例 伪 p
  • 使用迭代器遍历 boost::ublas 矩阵

    我只是想从头到尾遍历一个矩阵 触及每个元素 然而 我发现升压矩阵没有一个迭代器 而是有两个迭代器 而且我无法弄清楚如何使它们工作以便您可以遍历整个矩阵 typedef boost numeric ublas matrix
  • 在 C99 中,f()+g() 是未定义还是只是未指定?

    我曾经认为在C99中 即使函数的副作用f and g干扰 虽然表达f g 不包含序列点 f and g将包含一些 因此行为将是未指定的 要么 f 在 g 之前调用 要么 g 在 f 之前调用 我不再那么确定了 如果编译器内联函数会怎样 即使
  • 确定所选电子邮件是来自收件箱还是已发送邮件

    我正在编程Outlook 插件并需要确定所选电子邮件是否来自Inbox or Sent Items这样当我将电子邮件保存到数据库中时 我可以使用文件夹 收件箱 或 已发送 来标记电子邮件 我知道我可以将文件夹名称与 收件箱 或 已发送邮件
  • 将图像添加到 ASP.Net 中的单选按钮列表

    我正在尝试将图像添加到单选按钮列表控件 但它不起作用 我试过这个 RadioButtonList2 Items Add new ListItem String Format src Colors Dallas 625527 1 1 png
  • if(pointerVar) 与 if(pointerVar!=NULL) 相同吗?

    简单的问题 Is if pointerVar 与if pointerVar NULL 也是if pointerVar 与if pointerVar NULL 给我你在技术上最正确 迂腐的答案 这两种说法看起来和操作起来都是一样的 前者有什么
  • Visual Studio 扩展找不到所需的程序集

    我为 Visual Studio 2013 编写了一个扩展 因为该死的组合框错误 https stackoverflow com questions 7800032 cancel combobox selection in wpf with
  • 如何收集和存储tellp()、tellg()返回类型?

    我正在编写一个在文件中维护 linked list 的程序 因此 我通过使用tellp tellg 遍历文件并将其添加到特定的长整数 可以视为偏移量 以到达新位置 一个简单的例子是 long next offset sizeof long
  • timeval_subtract 解释

    使用 timeval subtract 函数来查找两个 struct timeval 类型之间经过的时间 有人可以解释一下用于 通过更新 y 执行后续减法的进位 和其他部分的目的和逐步数学吗 我了解该函数的目的以及如何在程序中实现它 但我想
  • Linq 表达式树 Any() 问题

    您好 我在使用 Any 扩展方法的表达式树时遇到问题 这是我的代码 IQueryable
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 防止使用不完整类型实例化模板类

    我正在写一个库 它的布局看起来类似于 A h include
  • (int *)0 是空指针吗?

    这可以被认为是一个扩展这个问题 https stackoverflow com q 16563114 912144 我只对 C 感兴趣 但添加 C 来完成扩展 C11 标准 6 3 2 3 3 规定 值为 0 的整数常量表达式 或此类表达式

随机推荐

  • 使用@javax.validation.Valid时如何以正确的方式抛出自定义异常?

    使用时如何以正确的方式抛出自定义异常 javax validation Valid 我在用着 Valid在控制器中 以及 AssertTrue验证请求正文字段 public ResponseEntity
  • Oracle REGEXP_LIKE 和字边界

    我在使用 REGEXP LIKE 匹配单词边界时遇到问题 正如预期的那样 以下查询返回一行 select 1 from dual where regexp like DOES TEST WORK HERE TEST 但我也想匹配单词边界 因
  • C# .NET 标签中的多种颜色

    我正在寻找一种在单个 C NET 标签中显示多种颜色的方法 例如 标签显示一系列 csv 分隔值 每个值的颜色取决于它们所属的存储桶 我不想使用多个标签 因为值是可变长度的 并且我不想使用动态布局 有对此的原生支持吗 NET 中没有本机控件
  • git 中神秘消失的分支

    以下是我执行的一些 git 操作 如您所见 我创建了一个新分支 修改了我的文件 然后提交了更改 在换回另一个分支后 希望合并 我刚刚工作的分支消失了 有谁知道如何从fixed merge branch恢复文件 我吓坏了 1 9 2 whis
  • 分叉连接优化

    我想要的是 我想致力于 fork join 算法的优化 我所说的优化只是指计算最佳线程数 或者如果您愿意的话 计算SEQUENTIAL THRESHOLD 参见下面的代码 PSEUDOCODE Result solve Problem pr
  • 拥有 MSI 安装包的主要优势是什么?

    我以为这会在网络上的某个地方 但我无法用谷歌搜索它 考虑到创建 MSI 包的复杂性 与 NSIS InnoSetup 等相比 什么是一个令人信服的理由去经历所有这些混乱 使用 MSVS 蹩脚的安装项目向导 学习一个全新的语言 生态系统只是为
  • json 键作为数字

    我有一个 JSON 传递给脚本 我不知道 JSON 键 因为它们是动态的 实际上 它们是数字 这就是我得到的 var countries 223 142 143 222 23 26 25 24 170 1 2 我尝试像这样访问数据 var
  • random() 函数内部 - 它是如何实现的?

    我们通常使用 random 函数在 C 中创建随机数 使用 void srand 无符号整数种子 可以改善结果 因为它会根据种子的值生成随机数 谁能告诉我随机函数是如何实际实现的 Here是 GNU C 库的 random 函数中使用的算法
  • Git - 包超出允许的最大大小

    我正在处理大量的二进制文件 最近对本地 git 存储库进行更改后 我尝试将更改推送回远程 结果收到以下错误 remote fatal pack exceeds maximum allowed size 不幸的是我无法使用所描述的策略here
  • Python:生成具有趋势的随机时间序列数据(例如周期性、指数衰减等)

    我正在尝试生成一些具有趋势的随机时间序列 例如周期性 例如销售 指数下降 例如帖子上的 Facebook 点赞数 指数增长 例如比特币价格 普遍增加 股票行情 等 我可以生成普遍增加 减少时间序列如下 import numpy as np
  • TextView 具有不同的字体和样式?

    是否可以在同一文本中包含不同大小 字体类型或样式的文本TextView 像这样的东西 myLogin logout 您可以使用以下方法执行此操作 textView setText Html fromHtml b myLogin b i lo
  • UICollectionView:必须使用非零布局参数进行初始化

    I added UICollectionView通过代码 现在 应用程序崩溃并显示消息 UICollectionView must be initialized with a non nil layout parameter 你有什么想法来
  • 如何将适用于 Windows 的 PHP 5.3 扩展编译为 DLL?

    我目前正在重写一个PHP最初编写的扩展PHP 4 2 2 我的问题是让构建 编译过程生成一个 dll而不是将扩展编译到PHP核 环境是windows server 2003 我使用的是Visual Studio 2008 我使用 EXT S
  • JS:函数参数默认值

    在某些语言中 您可以为函数的参数设置默认值 function Foo arg1 50 arg2 default 你如何在 JavaScript 中做到这一点 在 JavaScript 中 任何未设置的内容都会被赋予值undefined 这意
  • fputs( _("") ) 下划线代表什么?

    我终于开始看一些 Linux 代码 我现在正在看ls c 在函数usage 在底部我发现了很多这样的说法 fputs List information about the FILEs the current directory by def
  • TFS 构建错误 - “指定的路径、文件名或两者都太长...”

    我正在编写构建过程模板的自定义活动 我在构建活动时遇到以下问题 gt XamlBuildTask error XC1043 Extension Microsoft Activities Build BeforeInitializeCompo
  • 通过 API 调用获取文件(R 和管道工)

    我使用管道工作为一些 R 函数的简单 Web API 服务 我想通过 R 函数提供一个文件 下载 在客户端 非常像Flask 在 python 中通过 send file 和 send from directory 执行此操作 I trie
  • 将源代码附加到 Jprofiler

    我刚开始使用 JProfiler 我正在对应用程序进行远程分析 当我单击任何对象的显示源时 它显示 在源路径中找不到源文件 因为远程计算机上只有二进制文件 有什么办法可以链接源代码吗 仅供参考 我可以访问我可以使用的代码 在 JProfil
  • 使命名的锚点书签在单击时始终显示在屏幕顶部

    我的标记如下 li a href sheds housing Sheds amp Housing a li div h1 sheds amp housing h1 img src images cattle sheds housing pn
  • 如何循环访问 boost::mpl::list?

    据我所知 这是 include