gpt4 book ai didi

c++ - 位置.hh :46: error: expected unqualified-id before ‘namespace’

转载 作者:太空狗 更新时间:2023-10-29 21:08:53 24 4
gpt4 key购买 nike

这是我的代码:

 34  
35 /**
36 ** \file position.hh
37 ** Define the example::position class.
38 */
39
40 #ifndef BISON_POSITION_HH
41 #define BISON_POSITION_HH
42
43 #include <iostream>
44 #include <string>
45
46 namespace example
47 {
48 /// Abstract a position.
49 class position
50 {
51 public:
52
53 /// Construct a position.
54 position ()
55 : filename (0), line (1), column (0)
56 {

谢谢,speeder,太好了。 Necrolis,也谢谢你。你们两个在编译单元上都在同一条轨道上。这是完整的错误报告:

在 location.hh:45 包含的文件中, 来自 parser.h:64, 来自 scanner.h:25, 来自 scanner.ll:8:position.hh:46: error: ‘namespace’ 之前应为 unqualified-id

location.hh 看起来像这样:

35 /**
36 ** \file location.hh
37 ** Define the example::location class.
38 */
39
40 #ifndef BISON_LOCATION_HH
41 # define BISON_LOCATION_HH
42
43 # include <iostream>
44 # include <string>
45 # include "position.hh"
46
47 namespace example
48 {
49
50 /// Abstract a location.
51 class location
52 {
53 public:

我还应该补充一点,这些文件是由 bison 生成的。当我尝试编译由 flex++ 生成的 c++ 扫描器类时,我进入了这个阶段。我通过发出 flex --c++ -o scanner.cc scanner.ll 获取 .cc 代码。

最佳答案

这发生在 ;或者在命名空间之前缺少其他一些关闭的东西。你确定34之前的那几行没有代码吗?如果他们有代码(即使该代码是其他#include),错误就在那里。

编辑:或者如果所有 34 行都没有代码,则错误出在包含此 header 的文件上,很可能有一个没有结尾的代码;或 } 或 ) 或其他一些结束字符,紧随其后(当然忽略注释)是#include position.hh

或者如果一行中有两个include,一个在position.hh之前,position.hh之前包含的header的最后一行是有错误的,通常是没有;的结构结束后

关于c++ - 位置.hh :46: error: expected unqualified-id before ‘namespace’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234294/

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