std::span.size() 与数组/向量大小

Bra*_*rad 5 c++ cpp-core-guidelines

我们正在工作中尝试std::span()(目前使用 gsl 实现)。最近我们发现将 astd::span.size()与 a进行比较vector.size()会得到 a -Wsign-compare error

if( span.size() > vector.size() ) // comparison between signed and unsigned integer expressions [-Wsign-compare]
Run Code Online (Sandbox Code Playgroud)

我认为我们不想对每一项比较都进行选角。我们的编码指南将这些警告视为错误。好奇是否有人有任何想法或建议?

Jos*_* D. 1

您可以使用迭代器并同时使用 function std::distance()

if (std::distance(s.begin(), s.end()) > std::distance(v.begin(), v.end()))
Run Code Online (Sandbox Code Playgroud)