[英]Is it allowed to extend the std::numbers namespace with new definitions?
我在大型代码库中定义了几个数学数字常量。 其中一些(但不是全部)现在在新的 C++20 <numbers>
header 中重复。 我想把它们都放在一个地方; 是否允许扩展std::numbers
header 以包括尚未定义的那些?
是否允许扩展 std::numbers header 以包括尚未定义的那些?
不,您不能将定义添加到std
命名空间或其子命名空间(在未明确禁止的情况下,class 模板特化除外)。
您可以使用声明将它们全部放在您自己的命名空间中using
一个位置:
namespace Casey
{
inline constexpr double missing_number = 123;
using std::numbers::e;
// ...
}
您可以使用using namespace std::numbers
而不是单独using
每个数字,但需要注意的是,未来的标准版本可能会添加名称可能与您的名称冲突的数字,从而破坏 header 的未来兼容性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.