小编sem*_*der的帖子

使用另一个带有“使用?”之类的模板的模板专业化

我有一个模板定义。隐约类似于以下内容:

template<std::size_t ElemSize>
struct OptimizedArray;
Run Code Online (Sandbox Code Playgroud)

对于这样的东西,为了优化它,我可能会手动将其专门化为 1 字节、2 字节等大小。然而,为了支持 3 个字节,我基本上有另一个模板,如下所示,它编译两个 Size1 和 Size2 数组:

template<size_t ElemSize1, size_t ElemSize2>
struct OptimizedDualArray;
Run Code Online (Sandbox Code Playgroud)

为了使用 3 个字节的 OptimizedArray 接口,我很乐意执行以下操作:

template<> 
using OptimizedArray<3> = OptimizedDualArray<1, 2>;
Run Code Online (Sandbox Code Playgroud)

直接说,这个不行。然而,有没有办法做这样的事情呢?

c++ templates template-specialization c++20

2
推荐指数
1
解决办法
94
查看次数

标签 统计

c++ ×1

c++20 ×1

template-specialization ×1

templates ×1