Solaris CC 12.4编译器错误?

时间:2015-05-21 16:10:37

标签: c++ solaris

我可以在for_each中使用数组指针作为迭代器,但是当我尝试使用distance执行相同操作时,Solaris 12.4编译器会抱怨找不到匹配项。

这是我的代码:

#include <iterator>
#include <algorithm>
#include <iostream>
#include <iomanip>

using std::cout;
using std::endl;
using std::hex;

struct Bob {
   char q[16];
};

Bob stuff[16];

void DoBob(Bob& bob) {
   cout << "BOB! " << hex << &bob << endl;
}


int main() {
//   int ret = std::distance(&stuff[0], &stuff[3]);
   // The line above causes the Solaris C++ compiler to complain:
   //"main.cc", line 22: Error: Could not find a match for std::distance<_ForwardIterator, _Distance>(Bob*, Bob*) needed in main().

   std::for_each(&stuff[0], &stuff[3], DoBob);
   return 0;
}

我倾向于不喜欢责怪编译器。我做错了什么,或者这是Solaris编译器的问题?

0 个答案:

没有答案