涉及constexpr实例的平等检查

时间:2017-06-08 22:55:44

标签: c++ equality constexpr

我在班上添加了以下成员:

constexpr static folly::Unit nullUnit {};

这是链接到愚蠢::单位:

https://github.com/facebook/folly/blob/master/folly/Unit.h

根据标志,我会返回folly :: unit或nullUnit:

                  if (mutate_resp->processed()) {
                      LOG(INFO) << "check returns folly::unit";
                      return folly::unit;
                  }
                  LOG(INFO) << "check returns nullUnit";
                  return nullUnit;

我像这样进行平等检查:

if (ret == folly::unit) return true;
return false;

然而,即使我在输出中看到以下内容,似乎比较总是正确的:

I0608 22:43:37.729920 18225 raw-async-table.cc:132] check returns folly::unit
I0608 22:43:37.731446 18225 raw-async-table.cc:135] check returns nullUnit

赞赏任何提示

1 个答案:

答案 0 :(得分:3)

愚蠢有这个:

public void set(int n, int m, double d){
    this.matrix[n][m] = d;
}

你有这个:

constexpr Unit unit {};

这些是相同的。此外,Folly有这个:

constexpr static folly::Unit nullUnit {};

很明显,任何单位都会与其他单位进行比较。