And*_*zos 5 c++ language-lawyer c++11
它在C++ 3.3.7.2 [basic.scope.class]中说
N类中使用的名称S应在其上下文中引用相同的声明,并在完成的范围内重新评估S.
什么是翻译单元的示例,其中N类中使用的名称S在其上下文中引用的是与在完成的范围内重新评估时不同的声明S?
struct X {};\nstruct Y {};\n\ntypedef X N;\n\nstruct S\n{\n N n;\n typedef Y N;\n};\n\n$ g++ test.cpp \n9:15: error: declaration of \xe2\x80\x98typedef struct Y S::N\xe2\x80\x99 [-fpermissive]\n4:11: error: changes meaning of \xe2\x80\x98N\xe2\x80\x99 from \xe2\x80\x98typedef struct X N\xe2\x80\x99 [-fpermissive]\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |