【发布时间】:2021-03-27 00:12:00
【问题描述】:
我想每个人都知道,从C++20 开始,语言有了巨大的改进。我想从其他重大改进中提及这些。所以std::copystd::move 和std::transform 正在变成constexpr。奇怪的是所有iterator 访问器都已经是constexpr 但这些函数不是。如果您考虑他们的实现,我认为只需在他们前面添加 constexpr 就可以了。
所以我有一个问题。
添加constexpr可以自己编写这些函数的实现吗? 我会获得更多的性能吗?
【问题讨论】:
-
constexpr!= “轻松提升性能”。有很多关于 SO 本身的帖子,当这个期望没有得到满足时,人们会感到困惑。 -
没有什么能阻止你编写一个看起来像 C++ 标准库的库(STL 不再是一个正确的术语)。除非您想要未定义的行为,否则不要将您的库放在
std中。您还需要注意确保库中的函数/类型/等不会无意间以奇怪的方式与标准库进行交互。不过,我不会打赌您会获得更高的性能 - 可靠地提高性能需要的不仅仅是散布诸如constexpr之类的关键字。
标签: c++ algorithm stl iterator constexpr