相关疑难解决方法(0)

将std :: tuple转换为std :: array C++ 11

如果我有std::tuple<double, double, double>(类型是同类的),是否有转换为的股票函数或构造函数std::array<double>

编辑::我能够使用递归模板代码(我在下面发布的草稿答案).这是处理这个问题的最佳方法吗?这似乎会有一个库存函数......或者如果你对我的答案有所改进,我会很感激.我会留下未回答的问题(毕竟,我想要一个方法,而不仅仅是一种可行的方式),并且更愿意选择别人的[希望更好]答案.

谢谢你的建议.

c++ arrays tuples c++11

18
推荐指数
4
解决办法
7044
查看次数

std::tuple 可以在编译时/运行时根据其值进行排序吗

我想知道是否constexpr std::tuple可以在编译时对a进行排序:

template<typename T>
struct A{ T val; }; // a constexpr-enabled class

constexpr auto t = std::make_tuple( A<int>{3}, A<float>{1.f}, A<double>{2.0});
constexpr auto s = sort(t, [](auto&& v){return v.val; });

static_assert(std::is_same_v<std::tuple<A<float>,
                                        A<double>, 
                                        A<int>>,decltype(s)>, "Wups");
Run Code Online (Sandbox Code Playgroud)

这可能吗,这里需要哪些构建块(std::sortconstexpr)?

(据我所知)在运行时不可能做到这一点,因为在运行时无法确定排序元组的类型。如果构建所有排列的类型映射,我也看不到一种方法,实际排列仍然只在运行时才知道。

回答/sf/answers/3220421851/ 给出了一些提示,它应该在编译时工作,但是如何?

c++ sorting constexpr stdtuple c++20

4
推荐指数
1
解决办法
189
查看次数

标签 统计

c++ ×2

arrays ×1

c++11 ×1

c++20 ×1

constexpr ×1

sorting ×1

stdtuple ×1

tuples ×1