【发布时间】:2019-10-25 15:28:36
【问题描述】:
我想创建一个具有std::map 之类的方法的类,但它应该在编译时进行排序。哪些constexpr 容器适合存储键template<class K> 和值template<class V>?
std::vector 不符合这些要求。
UPD:我们发现std::array 有很多 constexpr 方法。我的问题使用std::array<std::pair<K, V> > 就足够了。
但问题仍然存在。
【问题讨论】:
-
所以听起来您正在寻找类似 @987654327@ 的东西,一个
constexpr函数来从初始化列表创建预排序,以及一些额外的函数来根据特定字段进行查找的元素(用于排序的相同字段)? -
@liliscent:如果有递归定义,代码中的生成是很自然的。
-
@BenVoigt 使用编译时计算来计算数据(矩阵)真的很疯狂 IMO。我宁愿用 Python 计算它们并将其复制到源代码中。
-
@liliscent:那只意味着你更喜欢 python 而不是 C++。这并不意味着世界其他地方也需要这样做。
-
我也喜欢模板编程,但这里我想说的是纯数据的计算,比如矩阵。我认为在没有实际收益的情况下减慢编译速度是不值得的。从文件加载数据是正确的选择。 @克里斯