我有一个模板定义。隐约类似于以下内容:
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)
直接说,这个不行。然而,有没有办法做这样的事情呢?