我无法理解以下 misra 规则,“函数不得在 block 范围内声明”。文档中给出的解释是“在 block 范围内声明的函数将引用封闭命名空间的成员,因此声明应明确放置在命名空间级别。”他们的意思是指封闭命名空间的成员?有人可以澄清一下吗?
最佳答案
这意味着当你有了这个时,foo
将在 bar
之外的命名空间中有它的定义:
namespace {
void bar() {
void foo();
}
//could define foo here
}
它的意思是将声明移到与定义相同的级别:
namespace {
void foo();
void bar() {}
//could define foo here
}
关于c++ - 函数不应在 block 范围内声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29015009/