由于各种原因(和我向你保证,它们是有效的,所以没有"使用可可"交谈请),我必须工作与工业化、C++、照片,usb类(有一点点过剩的侧面上),以重建的几个图形上演示Mac(来自XP+Visual Studio2005年发展)。该项目是建成一个命令行的工具,使用"c++量作为数++".

我的程序。h文件连接我色器的对象在一起,汇编、链接,否则他们准备用作照片色器方案。包含在这一文件的是以下相关行代码:

#include <vector>
using std::vector;

和在私有部分分类:

vector<int> shaderHandles;

当添加色器处理:

shaderHandles.push_back(shaderHandle);

最后,当使用推色器处理:

for (int s = 0; s < (int) shaderHandles.size(); s++)
{
    glAttachShader(handle, shaderHandles[s]);
}

在我所有的经验和研究,没有什么不对这些行在C++。但是,在编制(无论是调试或释放,所以它不有关 _GLIBCXX_DEBUG 问题),以下4个错误而产生的:

/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_bvector.h:916: error: 'size' is not a member of 'std'
/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_bvector.h:961: error: 'size' is not a member of 'std'
/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/vector.tcc:350: error: '__old_size' is not a member of 'std'
/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/vector.tcc:453: error: '__old_size' is not a member of 'std'

此外,该文件的链接stl_bvector.h和矢量。tcc是:

/Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/vector

因此,到目前为止,许多谷歌搜索已变成了什么。所有这些代码完美的作品。更糟糕的是,如果我代替上述代码列出当量:

#include <list>
using std::list;

而且,

list<int> shaderHandles;

而且,

for (list<int>::iterator s = shaderHandles.begin(); s != shaderHandles.end(); s++)
{
    glAttachShader(handle, *s);
}

该项目工程的预期。

但一个不能责怪这完全矢量执行情况,因为下列程序:

#include <iostream>
#include <vector>
using std::vector;

int main (int argc, char * const argv[])
{
    vector<int> test;

    test.push_back(1);
    test.push_back(2);
    test.push_back(3);

    test.clear();
    return 0;
}

工作没有问题。

我会乐于提供更多的信息,作为必要的。

请不要告诉我我应该使用可可/目标-C;它不是一个真正的选择权。虽然是的,我可以使用名单,以完成这一功能,其他的部份我的演示是不那么容易返工。

有帮助吗?

解决方案

我很抱歉每个人。仅仅几分钟后发布此,我决定去有什么我可以保存这个问题以后。我发现了一个类似问题发生fstream.这个新的信息提供、谷歌搜索了 这个话题, 和最终的解决方案。

我有定义我自己的最小和最大的宏我完全无关的矢量数学文件。解决的办法是删除我的宏并把std::在前面的最小和最大的呼吁。

其他提示

你有没有检查Mac SDK文件,什么样的功能做的,他们宣布为矢量级?也许你已经设置一些编译器的标志吗?你也可以做相同的矢量像你一样的清单,采用的迭代扫描通过你的矢量。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top