相关疑难解决方法(0)

显式实例化 - 何时使用?

几个星期休息之后,我正在尝试使用David Vandevoorde和Nicolai M. Josuttis 所着的模板 - 完整指南来扩展和扩展我的模板知识,我现在想要了解的是模板的显式实例化.

我实际上并没有这样的机制问题,但我无法想象我想要或想要使用此功能的情况.如果有人能向我解释,我将不仅仅是感激.

c++ templates

73
推荐指数
3
解决办法
5万
查看次数

自动拆分(重构).h到标头和实现(h + cpp)

在编写C++代码时,我经常从在头文件中编写完整的"实现"代码开始,然后需要将实现重构为.cpp文件.

这很好,但是我觉得这个过程很费力,但其他方面很简单,所以我想知道是否有任何自动化方法可以做到这一点?

具体来说,我想转换.h到声明中的所有类和函数定义,并在新.cpp文件中声明它们.

我正在使用xcode,但我对任何解决方案持开放态度.

c++ refactoring header-files automated-refactoring

11
推荐指数
1
解决办法
3079
查看次数

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
查看次数