我尝试用c++创建一个命名空间,方法如下:
namespace MyCompany.Library.Myproduct {
public ref class ClassWrapper
{
};
}
我收到错误:
Error 1 error C2059: syntax error : '.' ClassWrapper.h 7 1 MyCompany.Library.Myproduct
为什么我不能有. in命名空间?
编辑1
此命名空间定义在c /cli中,将在c#代码中使用。在c#中此命名空间是有效的,但在c中似乎无效。如何在c ++/cli代码中定义c#兼容命名空间?
2条答案
按热度按时间ebdffaop1#
不允许在命名空间名称中使用点。但是,可以有嵌套的命名空间。
然后这样示例化你的美洲驼:
AFAIK命名空间和类名遵循与变量相同的命名规则。变量的名称不能以数字字符开头,这同样适用于类/命名空间的名称。“."也是如此。
编辑:以下是纯粹的假设,因为我对C#或windows CLI一无所知。C++中的嵌套名称空间(例如Boap::Lib)在C#中被翻译成Boap.Lib有意义吗?* 也许 * 就这么简单。
qni6mghb2#
现在,在2023年,我们有可能实现自己的愿望;使用
::
。您需要确保C++ Language Standard
至少设置为C++17
。然后,以下代码将编译并工作: