有人把这篇文章给我的注意,声称(我意译)的STL长期被误指整个C++标准库,而不是从SGI STL中采取的部分.
(...)它指的是"STL",尽管很少有人仍然使用STL(在SGI设计).
C++标准库的一部分基于STL的一部分,正是这些部分,许多人(包括几位作者和臭名昭着的错误记录的cplusplus.com)仍然称为"STL".但是,这是不准确的; 事实上,C++标准从未提及"STL",两者之间存在内容差异.
(...)"STL"很少用于指代恰好基于SGI STL的stdlib的位.人们认为这是整个标准库.它被放在简历上.这是误导.
我几乎不了解C++的历史,所以我不能判断文章的正确性.我应该避免使用术语STL吗?或者这是一个孤立的意见?
有没有办法不在基于范围的for循环中"使用"循环变量,还避免编译器警告它未被使用?
对于上下文,我正在尝试执行以下操作.我已经"将警告视为错误",并且我宁愿不做一个黑客,就像强迫变量被某个地方毫无意义地提到"使用"一样.
size_t getSize(const std::forward_list &list)
{
size_t count = 0;
for (auto & : list) // compile error, but if i do "auto &i" here, MSVC
// complains (reasonably) that i is unused
{
++count;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
我知道还有其他方法可以做到这一点,但是为了论证,我需要使用基于范围的for循环.