【问题标题】:STL algorithm doesn't find iterator_category( )STL 算法没有找到 iterator_category()
【发布时间】:2013-11-04 16:23:34
【问题描述】:

我正在尝试构建 pvr,这是一个用于生产体积渲染书的开源体积渲染器(github here,供参考)。

使用 OS X Mavericks 和 LLVM 5.0,我在 algorithm.h 上不断收到以下错误:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/algorithm:1834:90: 错误:没有名为“iterator_category”的类型 'std::__1::iterator_traits

::迭代器>' VSTD::_fill(__first, __last, _value, typename iterator_traits<_forwarditerator>::iterator_category());

错误是指algorithm.h的这一部分:

template <class _ForwardIterator, class _Tp>
inline _LIBCPP_INLINE_VISIBILITY
void
fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_)
{
    _VSTD::__fill(__first, __last, __value_, typename iterator_traits<_ForwardIterator>::iterator_category());
}

而且我不认为我完全理解发生了什么。我试过添加

#include <iterator>

在客户端代码中,但没有任何改变。

我错过了什么吗?

【问题讨论】:

  • 您发布的代码看起来正确。但是,它似乎与不具有 std::iterator_traits&lt;...&gt; 特化的迭代器一起使用。
  • 我假设您阅读了自述文件并为 OSX 应用了所需的源补丁(我只能假设它仍然适用于 Mavericks)。
  • @WhozCraig 是的,该补丁已应用于当前正在使用的python(2.6.9,随自制软件安装)的 pyports.h。仍在自述文件中,尝试使用 scons 而不是 cmake+xcode 进行构建,会导致相同的迭代器错误以及另外一些新的错误,它们抱怨在 std::string 上隐式实例化未定义模板。

标签: c++ algorithm stl xcode5


【解决方案1】:

这可能是错误指定迭代器的结果。您应该检查如何调用 std::fill

【讨论】:

  • 我同意,但关键是 OP 调用fill(),他下载的库源可以
猜你喜欢
  • 1970-01-01
  • 2014-02-24
  • 2020-08-09
  • 2018-05-11
  • 1970-01-01
  • 2021-12-31
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多