每个人都知道写"使用"在.h内的陈述是一件非常可怕的事情。
现在,我使用工具生成UI(对于那些了解Juce,它是Jucer的人),这需要在.h中使用这种使用语句。
为了避免这种情况,我编辑了模板文件以将其用于命名空间,但这些保护程序的保护不足,因为这些命名空间在其他地方使用。
因此,我尝试将此using指令括在一个未命名的范围内,如下所示:
namespace Gui
{
{
using namespace juce;
<generated code>
}
}
这对我来说似乎不错,但Visual Studio会产生错误:
&#39; {&#39; :缺少函数头(旧式正式列表?) 编译器在全局范围遇到意外的开括号。在大多数情况下,这是由于格式错误的函数头,错误的声明或杂散的分号引起的。若要解决此问题,请验证打开大括号是否遵循正确形成的函数头,并且前面没有声明或分散的分号。 此错误也可能由旧式C语言形式参数列表引起。要解决此问题,请重构参数列表以使用现代样式 - 即括在括号中。
你知道另一种方法吗 - 除了将其包含在另一个命名空间中,这会改变大量遗留代码吗?
编辑:我最终修改了生成器工具。如果有人需要,请与我联系。
答案 0 :(得分:4)
不,你不能在函数之外创建一个块范围。
您必须enclose it in another namespace或找到一种与Juce合作的方法,这可能不会导致此要求,可能是通过修改代码生成器,或者通过添加后处理步骤生成的代码将所有内容都转换为完全限定的名称。
或者你可以忍受它;如果你的整个项目都使用了Juce,并且你没有创建一个库,那么这不是所以那么糟糕。