c++ - 如何定义与 `using cell = pair<void*, cell*>` 等效的单元格?

标签 c++

根据 C++ 标准 n3376,以下代码格式错误。

using cell = pair<void*, cell*>; // ill-formed

有没有办法实现cell,这是一个合理的数据结构,而无需在C++中定义新的cell类?

最佳答案

以(相当多的)可读性为代价,您可以使用自定义和一些专门化来实现类似的东西

struct self {};

template<typename F, typename S>
struct pair
{
    F first;
    S second;

    // ...
};

template<typename F>
struct pair<F, self*> : pair<F, pair*>
{
};

然后你写

using cell = pair<void*, self*>;

关于c++ - 如何定义与 `using cell = pair<void*, cell*>` 等效的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49504005/

相关文章:

c++ - 魔术 COLORREF/RGB 值确定何时使用亮/暗文本

c++ - 如何将 char 复制到 char* vector 中

c++ - 解析 std::string 以选择字符

c++ - 那是内存泄漏吗?

c++ - 绑定(bind)到引用时临时对象生命周期扩展异常的基本原理是什么?

C++ 区分 Functor 和 Value 模板参数

c++ - 调试 Visual Studio 开发与 "Linux"开发的工作流方面?

c# - Google Protocol Buffers - 固定大小的缓冲区?

c++ - 如何输出属于 vector 数组的结构字符串?

c++ - 开发 C++ 链接器错误