小编des*_*sio的帖子

C++20 模块导出模板实例化

我正在创建一个库,并且 C++20 模块内有一个类模板,我想添加一个实例化,以减少使用我的库的每个项目的编译时间。

这些不同的实现是否等效,或者是否有更好的方法来实现?

1)

//mod.cpp
export module mod;

export template<typename T>
struct mystruct{ T i;};

export template class mystruct<int>;
Run Code Online (Sandbox Code Playgroud)
//mod.cpp
export module mod;

export template<typename T>
struct mystruct{ T i;};

template class mystruct<int>;
Run Code Online (Sandbox Code Playgroud)
//mod.cpp
export module mod;

export template<typename T>
struct mystruct{ T i;};

export extern template class mystruct<int>;



//mod_impl.cpp
module mod;

template class mystruct<int>;
Run Code Online (Sandbox Code Playgroud)

编辑:这个答案只说 2. 有效,但我的观点是 1. 和 3. 是否也等于 2.

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

7
推荐指数
1
解决办法
2688
查看次数

标签 统计

c++ ×1

c++-modules ×1

c++20 ×1

templates ×1