问题标签 [boost-hana]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boost Hana any_of?
So I tried to use Boost Hana's any_of method, but unlike the description in the implementation, it still calls the element after the element that first satisfied the predicate. Is this a know bug ?
Here is an MCVE:
#xA;Output:
#xA;c++ - C++14 元编程:在编译/初始化时自动构建类型列表
使用 C++14 和 Curiously Recurring Template Pattern (CRTP) 和可能的 Boost.Hana(或者boost::mpl
如果您愿意)的某种组合,我可以在编译时(或静态初始化时)构建类型列表而无需显式声明吗?
作为一个例子,我有这样的东西(见Coliru):
我想在创建时避免显式类型列表 -- D1
、D2
和D3
--list
因为这意味着当我似乎应该能够在类声明中或周围告诉编译器时,我必须手动维护该列表,"将此课程添加到您的跑步列表中”。(我的最终目标是自动化工厂注册,这是缺少的机制。)
我可以使用一些继承和/或元编程技巧在编译时或静态初始化时组成列表吗?
c++ - 用一个参数初始化 boost::hana::tuple
假设我们有这样的东西:某个类 Foo 的接口('FooInterface')和一个容器类 Bar,其中包含来自 'FooInterface' 的派生类。
现在,我将派生类('FooOne','FooTwo')的类型列表转发到容器类,并将它们的实例存储在小型类型计算之后的'boost::hana::tuple'中( 'FooTuple')。
现在如何根据 'FooList' 的大小,使用取消引用的 this 指针初始化元组元素?
输出 :
c++ - Boost Hana 编译时列表转换
我试图弄清楚如何在编译时使用 boost:hana 转换整数常量列表。
我的清单如下:
我想应用这个功能:
然而
为 的 res 生成一个类型hana::tuple<int, int, int>
。我没有看到如何将 lambda 的参数移动到模板参数中hana::int_c
c++ - boost hana:从集合和默认值创建地图
我有一个 boost::hana::set 类型,想用它创建一个映射,其中的值是布尔值。
c++ - 如何在相同的输入数据上加快许多不同的 hana::filters?
对不起,我的最小示例非常大。这是一个有效的 hana 算法,它基本上从所有转换的大元组中过滤出 8 个不同状态的转换。
虽然它可以工作,但它有点慢,特别是因为我实际上需要过滤 200 个州而不是 8 个州。我怎样才能让它更快?
c++ - 为编译时更改运行时研究
我正在尝试在 C++ 中实现一个通用 ECS 库以用于学习目的。我想了很多方法来实现,但我总是遇到问题。所以,如果你能帮我解决这个问题:
假设我有一个constexpr hana::tuple
组件hana::type_c
,例如:
而现在我有了一个组件存储类型,这里没有问题,所以我们称之为Storage(每个组件的类型不同):
我想将每个组件或每个组件组与其Storage
类型相关联。所以最简单的方法是做这样的事情:
但现在的问题是运行时。如果我初始化该元组但使用真正的 Storage 而不再type_c<Storage>
,我将不得不遍历元组以找到Storage
我需要的。所有这些都在运行时没有?这真的很糟糕,我的上一个版本有类似的东西Component::getStorage()
而且它是免费的(但更具限制性)。
所以问题是:我怎样才能拥有一些getStorage<Component>()
在运行时不花钱的功能?好吧,我的意思是只返回存储的引用。
编辑:到目前为止我认为的唯一方法很简单(听起来不错)。
伪代码
至少是这样的:
像这样我应该能够在编译时找到索引并在运行时访问正确的元素。但我是元编程的新手,所以我想有人可以做得更好。
c++ - 使用 Boost Hana 处理部分类型
我在这里所说的部分类型是这样的:
我认为它不适合 hana 哲学,如果我想拆分更多类型,它是不可读的。
那么使用 Boost Hana 执行此操作的有效方法是什么?
编辑 :
我的意思是,一种允许用户通过几个步骤创建最终类型的方法。就像他们可以使用一些部分类型来生成每个最终类型一样。但是使用通常的语法和hana::type
.
c++ - BOOST_HANA_ADAPT_STRUCT 与继承?
有没有办法将 BOOST_HANA_ADAPT_STRUCT 宏用于从基本结构继承的结构而不重复基本结构的访问器?
现在我有类似于以下示例的内容: