以下所有内容T
均为std::integral_constant<int, X>
。
如何设计一个结构和一个函数,将一个整数常量列表作为输入,并返回一个已经对常量进行排序的std::tuple<std::integral_constant<int, X>...>
?
template <class... T>
struct ordered_tuple;
template <class... T>
constexpr typename ordered_tuple<T...>::type make_ordered_tuple(T&&...);
使用方法是:
std::integral_constant<int, 5> i5;
std::integral_constant<int, 4> i4;
std::integral_constant<int, 9> i9;
std::integral_constant<int, 1> i1;
auto tuple = make_ordered_tuple(i5, i4, i9, i1);
答案 0 :(得分:4)
这是一种方法。我实现了合并排序,它非常适合函数式编程。它不到200行。其中大部分基于我在an earlier answer中使用的元函数。这是基于许多其他人在SO问题中使用的东西,与类型列表中的基本操作等有关...
改进的一种方法是减少所需的模板递归深度,目前它是 1) BuildingsController viewing all buildings renders index template
Failure/Error:
def self.searchcity(search)
where("city LIKE ?", "%#{search}%")
ArgumentError:
wrong number of arguments (0 for 1)
# ./app/models/building.rb:39:in `searchcity'
# ./spec/controllers/buildings_controller_spec.rb:103:in `block (3 levels) in <top (required)>'
。我想它可能是O(n)
但我确实不确定,这取决于你是否能找到重写O(log n)
元函数的方法。 (与Yakk在另一个问题中指出的相似。)
merge