我是学生,我正在尝试建立一个项目。我的程序在访问向量时抛出错误。向量的大小是 1,但是当我调用 RenderQueue.front 时它会抛出一个错误:
front() 在空向量上调用。
我的代码如下:
全局文件
struct RenderStruct {
std::function<void()> testfunction1;
std::function<void()> testfunction2;
};
static std::vector<RenderStruct> RenderQueue;
测试.h
class test
{
public:
static void add_to_queue();
};
测试文件
void test::add_to_queue()
{
std::function<void()> testfunction1 = [&]()
{
std::cout << "First Function Working" << std::endl;
};
std::function<void()> testfunction2 = [&]()
{
std::cout << "Second Function Working" << std::endl;
};
RenderQueue.push_back({testfunction1, testfunction2});
};
主程序
int main()
{
test::add_to_queue();
auto front = RenderQueue.front();
front.testfunction();
front.testfunction2();
};
编译单元(cpp 文件)之间不共享静态链接变量。
使您的变量非静态,将其标记为 extern,然后从一个 cpp 文件中导出它(通过在那里声明它而没有 extern)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句