写个编译期排序
这回摆弄一下模板。 C++ 里有一个 std::integer_sequence。可以定义编译期整数序列。比如说 #include <utility> using my_seq = std::integer_sequence<int, 1, 2, 3, 4, 5>; 接下来写一个 trait seq_sort_t,实现编译期排序。类似于: using my_seq = std::integer_sequence<int, 2, 5, 3, 1, 4>; using sorted_my_seq = seq_sort_t<my_seq>; // std::integer_sequence<int, 1, 2, 3, 4, 5> 首先做一些准备工作。 运行时输出 通过类型萃取,将 std::integer_sequence 转换为运行时的 std::initializer_list。方便输出结果。 template <typename S> struct seq_to_init_list; template <typename T, T... Is> struct seq_to_init_list<std::integer_sequence<T, Is...>> { static constexpr std::initializer_list<T> value = {Is...}; }; template <typename S> constexpr auto seq_to_init_list_v = seq_to_init_list<S>::value; 用法如下:...