完整性RTOS \ Multi Compiler

时间:2017-06-20 11:51:36

标签: c++ integrity greenhills

在Windows中,我可以看到我在命名空间中从该命名空间外部声明的任何变量,但是当涉及到Multi编译器时,它是如此严格,如果你在命名空间X中声明了一些变量,则必须访问该变量仅在命名空间X中,但我也希望从命名空间中访问此变量。

是否有任何预处理器定义或任何方法使其成为可能。这对我来说是必须的,我无法删除命名空间。

感谢任何形式的帮助。

namespace X  
{
   int a = 5;
}

int b = a + 6;

result: a is undefined in multi compiler

2 个答案:

答案 0 :(得分:2)

GHS / Multi拒绝您的代码(as is GCC, for example)是正确的 要访问命名空间的成员,请使用scope resolution operator

namespace X  
{
  int a = 5;
}

int main()
{
  int b = X::a + 6;
}

答案 1 :(得分:0)

作为限定每次使用的替代方案:

namespace X  
{
  int a = 5;
}
using X::a; // In the global namespace, a now means X::a

int main()
{
  int b = a + 6; // Per the using-declaration, this is X::a
}