首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nullptr的差异

nullptr的差异
EN

Stack Overflow用户
提问于 2015-01-26 16:27:15
回答 1查看 66关注 0票数 0

我想知道同一类型的"2具体nullptr“的差值是否保证等于0。我在C++标准中找不到任何可以保证这一点的东西。

代码语言:javascript
复制
template <typename T>
std::ptrdiff_t diff() {
    T* p = nullptr;
    T* q = nullptr;
    return p - q;
}

换句话说,这段代码“有”返回0吗?

我问这个问题的原因是我想实现我自己的vector类

代码语言:javascript
复制
template <typename T>
class Vector {
private:
    T* data_;
    T* size_;
public:
    int size() const {
        return static_cast<int>(size_ - data_);
    }
}

我想知道,当我构造一个长度为0的向量时,是否允许放入data_ = size_ = nullptr。

EN

回答 1

Stack Overflow用户

发布于 2015-01-26 16:40:59

只需引用@hdv。不,它不是。nullptr是特殊类型std::nullptr_t的文本,该类型不是整数类型。实际上,nullptr - nullptr是一个错误,因为没有为该类型定义运算符。您需要将nullptr转换为具体的指针类型(就像问题所做的那样),以使减法工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28146709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档