[英]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.