-1
我添加了下面的成員在我的課:平等檢查涉及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
任何暗示表示讚賞
您的''''==''''操作符總是返回true。你爲什麼期望它永遠是假的? – mascoj
這個'Unit'類型或多或少是一個可以實例化的'void'。因此,一個實例表示缺少一個值*,並且它定義了所有的「單元」對象相互相等。看起來你的印象是'Unit'是一個「符號」類型,這不是鏈接文件中的註釋所表示的。 – cdhowie
讀完Unit.h之後,我達到了相同的理解:-) – Ted