如果我说的是nullptr,正确的术语是 nullptr (只有一个,所有提到的都是对同一事物的引用),还是a nullptr (有几个相同的东西)。
也就是说,函数文档应该说
如果ptr是
nullptr,则函数使用内部缓冲区.
或
如果ptr是
nullptr,则函数使用内部缓冲区.
(从学究上讲,这不是一个基于意见的问题,因为它可以通过引用确切的nullptr来回答)
发布于 2018-05-18 12:38:32
标准本身可互换地使用三种形式,但没有一种是“是nullptr”或“是nullptr”。如果你使用这三种方法中的任何一种,你就有了很好的伙伴。
为空
int_type底流(); 注:只有当
basic_streambuf为null或gptr() >= egptr()时,gptr()的公共成员才调用此虚拟函数
为空指针。
int同步(); 38效果:.构造哨兵对象后,如果
rdbuf()是空指针,则返回-1。..。
是nullptr
空锁(); 3抛出:.
system_error,如果pm是nullptr,则错误条件为operation_not_permitted。..。
发布于 2018-05-18 12:31:02
nullptr是一个关键字,它指定std::nullptr_t类型的prvalue。因此,指针不可能是nullptr。但是,它可以“是空的”(或者“有空值”)。
在您的文档示例中,我只想说
如果ptr为空,则函数..。
请注意,std::nullptr_t (因此nullptr)甚至不是指针类型!它是一种特殊类型,可以转换为指向对象的任何指针、指向函数的指针或指向成员的指针。我认为这是不谈论指针是nullptr的额外理由;指针只是null。
发布于 2018-05-18 16:55:39
说“一个nullptr”可能有意义的一个上下文是,每个指针类型都有一个NULL指针值,而对于每个实现中的所有类型,它们不一定是相同的值。(尽管你必须回到近50年前的一些过时的计算机中,才能找到例外。)有人可能会称int* maybe_int_p = nullptr;为“anullptr”和char* maybe_string_p = nullptr;为“a nullptr”,尽管两者都与nullptr_t类型的常数完全相同。无论如何,我会把它发音为“一个NULL指针”。
即便如此,您仍然会在明确您的意思的上下文中说“nullptr”。
至于实际使用情况,Google ngram查看器找不到这两种方法的任何示例。正如先前的一个答复所指出的那样,这两个词都不是官方术语。因此,没有既定的用法可遵循,没有一个听起来像我,人们不会有任何困难,理解你的意思。如果您指的是关键字nullptr,这是一个单例,所以称它为“the”更符合逻辑。但你想用哪种就用哪种。
https://stackoverflow.com/questions/50411338
复制相似问题