c++中的命名空间名称
Namespace name in c++
我正在尝试以以下方式在c++中创建一个命名空间:
namespace MyCompany.Library.Myproduct {
public ref class ClassWrapper
{
};
}
我得到错误:
Error 1 error C2059: syntax error : '.' ClassWrapper.h 7 1 MyCompany.Library.Myproduct
为什么我不能拥有。在名称空间?
Edit1
这个命名空间定义在c++/cli中,将在c#代码中使用。在c#中,这个名称空间是有效的,但在c++中似乎是无效的。如何在c++/cli代码中定义c#兼容的命名空间?
不允许在命名空间name中使用点。但是,您可以使用嵌套的命名空间。
namespace Boap
{
namespace Lib
{
namespace Prod
{
class Llama
{
public:
Llama()
{
std::cout << "hi" << std::endl;
}
};
}
}
};
然后这样实例化你的羊驼:
Boap::Lib::Prod::Llama l;
AFAIK命名空间和类名遵循与变量相同的命名规则。变量名不能以数字字符开头,类/命名空间的名称也是如此。
编辑:以下是纯粹的假设,因为我没有c#或windows CLI的知识。c++中的嵌套命名空间(例如Boap::Lib)被翻译成Boap有意义吗?c#中的Lib ?也许就是这么简单。
现在,在2023年,你有可能实现你想要的;与::
。您需要确保C++ Language Standard
至少设置为C++17
。
那么这段代码就可以编译并工作了:
<>之前命名空间MyCompany::Library::Myproduct {相关文章:
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 在命名空间中定义函数还是限定函数
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- CUDA内核和数学函数的显式命名空间
- 嵌套的匿名命名空间
- CMakeLists.txt中的命名空间表示法
- 类是C++中的命名空间吗
- 在命名空间中使用全局命名空间中的函数
- 如何使 std::sort 在 std::swap 和我的命名空间的模板化交换之间没有名称冲突?
- '使用命名空间{嵌套在另一个命名空间中的某个命名空间}"
- 是否可以将函数导入命名空间,但不能导出它?
- C++ C++类中的命名空间降级
- 如何使用 soong 命名空间来有条件地编译模块
- 使用 Clang++ 有没有办法将文件作为命名空间等包含?
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何通过命名空间调用非静态方法
- 在命名空间名称之前加上 :: 是什么意思?