相关疑难解决方法(0)

如何过滤std :: integer_sequence

如果我理论上有一个整数序列像

std::integer_sequence<int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>
Run Code Online (Sandbox Code Playgroud)

如何使用一些编译时谓词来过滤它以获得更小的std::integer_sequence<int, ...>

为了论证,让我们说我只想要偶数值,这导致了"如何使下面的static_assert(或接近的东西)通过?"的问题.

static_assert(std::is_same_v<std::integer_sequence<int, 0, 2, 4, 6, 8>,
              decltype(FilterEvens(std::integer_sequence<int, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9>{}))>, 
              "Integer sequences should be equal");
Run Code Online (Sandbox Code Playgroud)



这个问题的灵感来自于考虑我们如何完成删除两个位集之间的重复(这个问题),假设我们可以将位集表示为integer_sequences仅包含0和1.如果你也可以用这种方式解决那个问题

c++ c++17

5
推荐指数
2
解决办法
1157
查看次数

标签 统计

c++ ×1

c++17 ×1