gpt4 book ai didi

c++11 - C++ nullptrt_t 作为构造函数中的参数

转载 作者:行者123 更新时间:2023-12-04 17:00:02 24 4
gpt4 key购买 nike

阅读一些代码,我发现一个类只接受新的 C++11 nullptr_t作为参数。这个类看起来像下面的那个。

我是否正确,我唯一可以通过专门使用 nullptr 来构造对象的东西吗? ?

class CA {
public:
CA(nullptr_t) {}
};

最佳答案

该标准在 §2.14.7.1 中规定:

The pointer literal is the keyword nullptr. It is a prvalue of type std::nullptr_t. [ Note: std::nullptr_t is a distinct type that is neither a pointer type nor a pointer to member type; rather, a prvalue of this type is a null pointer constant and can be converted to a null pointer value or null member pointer value. —endnote]


nullptr_t 类型的唯一纯右值是 nullptr然后可以按照 §4.10 和 §4.11 中指定的规则将其转换为其他指针类型。

其他整数文字可以转换为 std::nullptr_t 类型的值根据 §4.10.1:

A null pointer constant is an integer literal (2.14.2) with value zero or a prvalue of type std::nullptr_t.



因此,您可以使用值为 0 或 nullptr 的整数文字。 .

具体来说:
  • 0
  • 0u , 0U
  • 0l , 0L
  • 0ul , 0uL , 0Ul , 0UL
  • 0ll , 0LL
  • 0ull , 0uLL , 0ULL
  • nullptr
  • NULL

  • 我可能遗漏了一些案例,所以请随意纠正我。

    关于c++11 - C++ nullptrt_t 作为构造函数中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27121395/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com