gpt4 book ai didi

C++ 错误 : expected ‘;’ before ‘<’ token

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:43 25 4
gpt4 key购买 nike

所以我在编写光线追踪器的同时尝试学习 C++,当我尝试使用我的 makefile(首先生成 .o 文件然后链接它们)进行编译时,我有点为这个错误而苦苦挣扎。完整错误如下:

touch include/ray.h
touch include/material.h
touch include/hit.h
touch include/object.h
touch include/light.h
touch include/scene.h
touch include/sphere.h
touch include/directional_light.h
g++ -c -O -I. raytrace.cpp -o raytrace.o -std=c++0x
g++ -c -O -I. base/scene.cpp -o base/scene.o -std=c++0x
g++ -c -O -I. base/vector.cpp -o base/vector.o -std=c++0x
g++ -c -O -I. base/vertex.cpp -o base/vertex.o -std=c++0x
g++ -c -O -I. base/colour.cpp -o base/colour.o -std=c++0x
g++ -c -O -I. objects/object.cpp -o objects/object.o -std=c++0x
g++ -c -O -I. objects/sphere.cpp -o objects/sphere.o -std=c++0x
g++ -c -O -I. base/material.cpp -o base/material.o -std=c++0x
g++ -c -O -I. base/ray.cpp -o base/ray.o -std=c++0x
g++ -c -O -I. lights/light.cpp -o lights/light.o -std=c++0x
g++ -c -O -I. lights/directional_light.cpp -o lights/directional_light.o -std=c++0x
g++ -c -O -I. base/hit.cpp -o base/hit.o -std=c++0x
g++ -c -O -I. base/matrix.cpp -o base/matrix.o -std=c++0x
touch include/t_stack.h
g++ -c -O -I. t_stack/matrix_w.cpp -o t_stack/matrix_w.o -std=c++0x
touch include/t_stack.h
g++ -c -O -I. t_stack/t_stack.cpp -o t_stack/t_stack.o -std=c++0x
In file included from t_stack/t_stack.cpp:1:
./include/t_stack.h:12: error: expected ‘;’ before ‘<’ token
./include/t_stack.h:13: error: expected ‘;’ before ‘<’ token

导致问题的代码是 t_stack.h 文件:

1 #ifndef _STACK_H_
2 #define _STACK_H_
3
4 #include <stack>
5 #include <list>
6 #include <iostream>
7 #include "include/matrix.h"
8 #include "include/matrix_w.h"
9
10 class T_stack {
11 private:
12 stack<Matrix_w*, list<Matrix_w* > >* m_stack;
13 list<Matrix<double>* >* t_list;
14 public:
15 T_stack();
16 void pop();
17 void push_translation(double tx, double ty, double tz);
18 void push_scaling(double sx, double sy, double sz);
19 int size() const;
20 ~T_stack();
21 };
22
23 #endif

我已经检查了这个文件中包含的其他文件,例如 matrix.h 和 matrix_w.h,我很确定它们没有遗漏任何分号或任何类似的东西。我什至尝试编译除 t_stack.h 文件之外的所有内容,并且它构建正确......任何想法可能是什么问题?这有点奇怪,因为在我尝试将这些文件与其余代码合并之前,我用更简单的程序进行了几次测试并且一切正常......非常感谢帮助。谢谢!

最佳答案

stacklist 与标准库中的几乎所有内容一样,都是在 std 命名空间中声明的。为了使用它们,您需要将它们限定为 std::stackstd::list

此外,不要使用 reserved names_STACK_H_

关于C++ 错误 : expected ‘;’ before ‘<’ token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com