相关疑难解决方法(0)

有没有办法用 gcc 查询直接模块依赖关系?

给定一个模块

// a-m.cc
export module A;

import B;
import C;

import "D.h";

...
Run Code Online (Sandbox Code Playgroud)

有没有一种调用 gcc 的方法(类似于 -M 对标头所做的操作)来列出对其他模块和导入标头(即 B、C 和“Dh”)的直接依赖项?

c++ gcc c++20 c++-modules

6
推荐指数
1
解决办法
1192
查看次数

何时使用 C++ 模块?

这个问题可能太宽泛了,但最近确实让我很高兴:

我最近发现了现代 C++ 中的模块: https://en.cppreference.com/w/cpp/language/modules

但我真的不明白他们的目的以及何时使用它而不是命名空间或只是库头?

在提供的示例中,他们现在使用import <iostream>;代替include <iostream>;,使用其中一种与另一种有什么区别?哪一个是首选?

他们说“模块与名称空间正交”?这是什么意思?

关于开发的指导方针是什么,我们现在应该避免标题和东西吗?

例如:

你好世界.cpp

export module helloworld; // module declaration
 
import <iostream>;        // import declaration
 
export void hello()       // export declaration
{
    std::cout << "Hello world!\n";
}
Run Code Online (Sandbox Code Playgroud)

主程序

import helloworld; // import declaration
 
int main()
{
    hello();
}
Run Code Online (Sandbox Code Playgroud)

相对

helloworld.h / helloworld.cpp

include <iostream>;

namespace ns
{
    void hello();
}


#include "helloworld.h";

void ns::hello()
{
    std::cout << "Hello world!\n";
}
Run Code Online (Sandbox Code Playgroud)

主程序

#include "helloworld.h";
 
int main()
{ …
Run Code Online (Sandbox Code Playgroud)

c++ c++20 c++-modules

5
推荐指数
0
解决办法
1370
查看次数

标签 统计

c++ ×2

c++-modules ×2

c++20 ×2

gcc ×1