问题标签 [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.

0 投票
1 回答
215 浏览

c++ - boost hana 将两个序列压缩到地图中

我想将这两个大小相等的序列相互映射。但是,我似乎无法理解如何通过以下hana::map功能获得它:

无论我进行什么转换,我似乎都无法创建映射。我知道地图要求其元素属于产品概念,但我似乎无法理解(甚至理解)关于压缩结构的行为。

有什么我可以做的,或者我做错了什么?

今天正在运行gcc version 6.0.0 20160320hana version 0.7.0最后一次获取

0 投票
2 回答
382 浏览

c++ - Boost.Hana 中是否有与 Boost.Fusion 中的 View 概念等效的东西?

我试图迭代用户定义的结构hana::for_each并注意到它被复制/移动,同时Boost.Fusion允许您就地迭代原始结构。

我没有从in 中找到类似View概念的东西。如何将转换应用于序列而不每次都复制/移动它们?Boost.FusionBoost.Hana

更新:我尝试使用hana::transform来申请std::ref成员,但Struct不是 a Functior,因此transform在这种情况下不适用。我能够使用 实现所需的行为hana::accessors,但对我来说它看起来有点 hacky。我希望有一种方法可以创建视图。

0 投票
2 回答
998 浏览

c++ - 在`boost::hana::map`中更新/替换地图值的规范方法

在a 中更新值(给定键和新值)boost::hana::map的规范方法是什么?

我尝试使用boost::hana::replace_if但它不起作用,map因为它不是 a Functor- 我可以通过将 a 转换map为 atuple然后再转换回 a来使其工作map,但这听起来效率低下。

我目前正在使用的替代方法是调用map::erase_key后跟map::insert.

是否有为此目的而设计的任何功能replace或功能我可能会丢失?update或者这是更新值的“规范”方式?

0 投票
1 回答
354 浏览

c++ - Get the type of a function parameter with boost::hana

I know how to get the type of a function's parameter the old way, but I was wondering if there is a nice new way to do it with Hana? For example, I want something like this:

How do I get the TYPE here?

0 投票
1 回答
252 浏览

c++ - 使用boost hana定义结构编译错误

我从 boost hana 开始,目前在编写基本程序时遇到了这个编译问题:

我正在使用最新的 gcc 编译器(6.1),我得到的编译器错误是

这很奇怪,因为当我查看标题时,boost/hana/detail/preprocessor.hpp(上面包含的文件struct_macros.hpp)确实包含此宏定义。

编辑:宏是可怕的。:( 看看第一个答案。

0 投票
1 回答
6146 浏览

c++ - 字符串作为键和类型作为值的 C++ 映射

在 boost 库中是否有boost-hana的替代方法,它可以让我创建类似的东西

我使用了boost-fusion,但我找不到适合我的用例的解决方案,即字符串到类型的映射。

0 投票
3 回答
1167 浏览

c++ - boost::hana 元组解包可变参数模板实例化

与这个问题相关,我想知道这样的事情是否可以使用 boost::hana 以一种简单的方式实现:

0 投票
2 回答
206 浏览

c++ - Checking for a specific nested type/tag with boost hana

Having fun with boost::hana. I wish to check for a specific nested type that acts like a tag in another type, so I borrow from hana::when_valid example and defined a class is_S along with its SFINAE-enabled specialization:

This prints:

Is there a simpler/shorter/more succinct way of writing the same check, in keeping with value-type computation of hana philosophy?

0 投票
1 回答
266 浏览

c++ - Boost hana 在集合中查找类型

新手boost::hana并尝试一个简单的实验来在一组类型中找到一个类型并打印它的typeid.name. 但是我收到 static_assert 错误(注意:Xcode 7.2.1)

这是代码:

错误是:

"hana::adjust(xs, value, f) 要求 'xs' 是一个 Functor");

然而,这似乎与调整xs需要成为结构的状态的文档不一致。

任何建议都表示赞赏,因为我认为我在理解中遗漏了一些基本的东西。

0 投票
5 回答
3892 浏览

c++ - 在 C++ 中根据运行时字符串选择模板

我有一个可以容纳不同类型的属性向量:

基于类型的运行时输入,我想创建适当的数据结构。伪代码:

显然,这失败了。一个简单但丑陋且不可维护的解决方法是运行时切换/链接,如果:

我读到了关于函子的运行时多态性,但发现它对于一个概念上很简单的任务来说相当复杂。

完成这项工作的最佳和最干净的方法是什么?我玩了一下boost::hana,发现虽然我可以创建从字符串到类型的映射,但查找只能在编译时完成:

所有可能的类型在编译时都是已知的。任何建议都受到高度赞赏。在一个完美的解决方案中,我会在一个地方创建名称-> 类型映射。之后,我会这样使用它

这种魔法不需要在编译时发生。我的目标是拥有尽可能易读的代码。