小编Sim*_*ens的帖子

使用当前模板作为模板参数到模板参数之一

我正在尝试创建一个通用的图形结构,但我遇到了顶点和边之间的这种循环依赖关系。我像这样定义我的 Vertex 和 Edge 类:

template<typename EdgeType>
struct Vertex {
    std::vector<EdgeType> successors;
};

template<typename EdgeCostType, typename VertexWrapper>
struct Edge {
    EdgeCostType cost;
    VertexWrapper source;
    VertexWrapper dest;
};
Run Code Online (Sandbox Code Playgroud)

我想用类似的东西实例化它Vertex<Edge<int, std::shared_ptr<decltype(v)>>> v;,但我显然不能。我能做些什么来解决这种循环依赖?

编辑:

我认为这个问题归结为使用当前模板作为当前模板的模板参数之一的模板参数,例如如何做这样的事情:

template<typename VertexWrapper>
struct Vertex {
    std::vector<pair<int, VertexWrapper<Vertex>>> successors;
};
Run Code Online (Sandbox Code Playgroud)

c++ circular-dependency c++11 c++17

8
推荐指数
1
解决办法
243
查看次数

检查 ts-node 有效性

对于我的项目 ci/cd,我运行tsc --noEmit以确保代码类型检查。然而,我有一些运行的脚本ts-node,最近我遇到了一个错误,tsc说我的代码有效但ts-node崩溃了(由于模块的时髦东西)。有没有一种方法可以让我不必使用tsc代理来检查ts-node类型检查/运行是否正确?

这些选项看起来都没有多大帮助:https://github.com/TypeStrong/ts-node#cli-flags

typescript ts-node

5
推荐指数
0
解决办法
722
查看次数

检查 zig 数组中是否存在元素

有没有更惯用的方法来查找数组中是否包含某个值

fn valueInArray(value: u32, array: []const u32) bool {
    for (array) |num| {
        if (value == num) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

zig

5
推荐指数
1
解决办法
499
查看次数

标签 统计

c++ ×1

c++11 ×1

c++17 ×1

circular-dependency ×1

ts-node ×1

typescript ×1

zig ×1