【问题标题】:How to get a type relative to a runtime index?如何获取相对于运行时索引的类型?
【发布时间】:2011-05-13 18:38:54
【问题描述】:

假设我有一个boost::mpl::list< A, B, C ...>

在运行时给定索引值,我如何访问其中一种类型?有可能吗?

【问题讨论】:

  • 请提供您想要完成的任务的一些背景信息。
  • 也许你会发现这个问题很有用:stackoverflow.com/questions/4798169/…
  • @Emile Cornier> 无论上下文如何,mpl::list 都是提供编译时类型容器语义的类型容器。所以问题很清楚:我得到了这个类型的编译时列表,我想得到特定索引处的类型,但我只在运行时得到索引,而不是编译时。

标签: c++ boost metaprogramming boost-mpl


【解决方案1】:

http://www.boost.org/doc/libs/release/libs/mpl/doc/refmanual/for-each.html

您基本上必须遍历整个列表并引入某种条件: 例如:

struct F {
    void operator(T &t) {
        if (i_ == index) ...
        ++i;
    }
    int index = ...;
    int i_ = 0;
};
for_each< L >( F(index) );

【讨论】:

  • 我看不出那个裸链接是如何回答这个问题的。
  • 你知道吗?在检查了所有可能性后,我发布了这个问题,我不得不离开我的工作场所。一旦出来,我就有了这个确切的想法。 TT___TT 我想我太累了。无论如何,谢谢,确认它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
相关资源
最近更新 更多