模块命名冲突
Modules naming conflict
是否可以在不导入模块的情况下使用导出的 class/function?考虑这个例子:
System.ixx
export module System;
export class String {...};
System2.ixx
export module System2;
export class String {...};
有没有办法像System::String
或System2::String
一样使用它?显然,当我导入这两个模块时,我得到一个编译器错误。
模块改变了您从多个文件访问代码的方式,但仅此而已。它们(在大多数情况下)不会影响 C++ 作为一种语言的基本性质。
C++ 已经有一个工具来管理不同库和源位置之间的名称冲突:命名空间。因此,C++ 模块无需解决已经充分解决的问题。
是否可以在不导入模块的情况下使用导出的 class/function?考虑这个例子:
System.ixx
export module System;
export class String {...};
System2.ixx
export module System2;
export class String {...};
有没有办法像System::String
或System2::String
一样使用它?显然,当我导入这两个模块时,我得到一个编译器错误。
模块改变了您从多个文件访问代码的方式,但仅此而已。它们(在大多数情况下)不会影响 C++ 作为一种语言的基本性质。
C++ 已经有一个工具来管理不同库和源位置之间的名称冲突:命名空间。因此,C++ 模块无需解决已经充分解决的问题。