12得票5回答
在C++中基于运行时字符串选择模板

我有一个属性向量,它可以保存不同类型的值:class base_attribute_vector; // no template args template<typename T> class raw_attribute_vector : public base_attribut...

11得票2回答
如何从参数包中定义值类型元组

我需要构建一个由n个类型组成的元组。这些n个类型是另外n个类型的值类型。考虑下面的代码片段:#include <boost/hana.hpp> namespace hana = boost::hana; template<class... Types> class ...

10得票3回答
如何使用boost.hana解决“常量表达式中不允许读取非constexpr变量'a'”的问题

我正在使用Boost.hana和C++17编写一些元编程程序。有一个问题困扰着我,那就是在类似于static_assert的constexpr上下文中可以使用哪种表达式。以下是一个示例: #include <boost/hana.hpp> using namespace boo...

9得票1回答
使用lambda和不动点组合子递归访问一个`std::variant`

我希望能够使用lambda表达式和函数重载创建工具(例如boost::hana::overload)访问一个“递归”的std::variant。假设我有一个名为my_variant的变体类型,它可以存储一个int、一个float或一个vector<my_variant>。请注意保留...

9得票1回答
使用元编程展开嵌套循环

我有一些嵌套循环,它们的大小 I, J, ... 在编译时已知,例如: for(int i = 0; i < I; ++i) { for(int j = 0; j < J; ++j) { // ... // do sth with (i,j...

8得票1回答
使用Boost Hana可以对方法进行内省吗?

Boost Hana提供了一种简单而美妙的方式来检查类成员字段: Boost Hana // define: struct Person { std::string name; int age; }; // below could be done inline, but I pr...

8得票3回答
创建任意整数常量元组的通用工具

利用Scott Schurr的 str_const ,我有了一个constexpr字符串。 class StrConst { public: template<size_t N> constexpr StrConst(const char (&str)[N...

7得票1回答
将两个序列压缩成一个映射的Boost Hana函数

static constexpr auto type_tuple_c = hana::tuple_t<T...>; static constexpr auto idx_tuple_c = hana::tuple_c<std::size_t, 0, sizeof...(T)&g...

7得票3回答
C++14 元编程:自动在编译/初始化时构建类型列表

使用C++14和奇异递归模板模式(CRTP)的某些组合,可能还包括Boost.Hana(或者如果您愿意,boost::mpl),我能否在编译时(或静态初始化时)构建类型列表而不需要显式声明? 例如,我有这样的东西(在Coliru上看到它): #include <iostream&gt...

7得票2回答
为什么这个嵌套的lambda表达式不被视为constexpr?

我试图使用嵌套的constexpr lambda创建柯里化接口,但编译器认为它不是常量表达式。 namespace hana = boost::hana; using namespace hana::literals; struct C1 {}; template < typena...