我在vector
课程中收到错误,例如您在#include < vector >
我只得到一次,而且我不知道为什么会发生这种情况:
错误C2036:
'Agent *const '
:未知大小
这也发生在vector中,出现错误的代码在这里:
size_type size() const
{ // return length of sequence
return (this->_Mylast - this->_Myfirst); // error on this line
}
答案 0 :(得分:16)
这意味着此时类型Agent
尚不完全清楚。您可能只是向前声明了它,但此时没有可见的定义。
以下代码显示此错误:
#include <vector>
class Agent;
static int getSize(std::vector< Agent > const& v) {
return v.size();
}
在使用Agent
之前,您需要包含定义std::vector< Agent >
类的文件。该文件可能名为Agent.h
。
错误的原因是因为在您指向的代码行中,编译器尝试计算两个Agent const*
之间的差异。这大致等于投射到char const*
的指针除以sizeof(Agent)
的差异。但是,如果类型未完全定义,则无法知道此大小。