小编Rip*_*peR的帖子

Travis-CI - 如何计算构建的时间限制?(所有工作的总和或最长工作的时间)?

假设我有回购,每次推送(构建)启动4个工作(不同的环境/编译器等).

建设有时间限制 - 50分钟.是否计算为所有构建的时间总和(如左图所示),或者它是否与每个作业无关?

示例:4个构建,每个花费20分钟 - 它会超时因为它将是80分钟的计数器还是可以计算为20分钟(最长工作的时间)?

continuous-integration timeout time-limiting travis-ci

10
推荐指数
1
解决办法
4944
查看次数

将所有项目依赖项放入项目存储库中是一种好的做法吗?

我有一个项目使用几个(目前〜6)依赖项(其他库)。它们中的大多数都使用 MIT/简化的 BSD 许可证,因此将它们复制到我的存储库应该不是问题。

将所有这些库放入我的存储库并推送它们(当新版本出现时,也更新它们)是否是一个好习惯?或者我的项目存储库应该只包含项目文件(代码、资产等)?

优点:

  • 建筑变得更加简单,因为我需要的一切都在附近
  • 添加的库意味着我使用这些版本测试了我的项目,因为其他版本(较旧/较新)可能会产生一些问题

缺点:

  • 项目回购中的膨胀

  • 必须手动更新依赖项

  • 如果我想粘贴也构建的版本,我将不得不粘贴很多

  • 文件,这会占用大量空间,所以可能只坚持源代码?

  • 有些库可能没有那么好的许可证,直接使用它们(除了要求用户自己获取有效的库之外)并将它们放在我的存储库中可能会带来一些麻烦

  • 拥有更多项目来保持依赖关系意味着我必须同时更新所有项目的它们(例如,如果我根据当前项目(它的库)创建一些其他项目,那么它们都将具有相同的依赖关系)

c++ git dependencies repository repository-design

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

将对象作为函数的参数发送时移动语义

我正在玩移动构造函数和移动任务,我偶然发现了这个问题.第一个代码:

#include <iostream>
#include <utility>

class Foo {
    public:
        Foo() {}

        Foo(Foo&& other) {
            value = std::move(other.value);
            other.value = 1; //since it's int!
        }

        int value;

    private:
        Foo(const Foo& other);
};


void Bar(Foo&& x) {
    std::cout << "# " << x.value << std::endl;
}

int main() {
    Foo foo;
    foo.value = 5;

    Bar(std::move(foo));
    std::cout << foo.value << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在我看来,当我使用:

Bar(std::move(foo));
Run Code Online (Sandbox Code Playgroud)

程序应该将foo对象"移动"到使用Bar函数中的move构造函数创建的临时对象.这样做会使foo对象的值等于零.不幸的是,它接触Bar函数中作为参数保存的对象是某种参考,因为它不会"移动"原始值,但使用Bar的参数我可以更改它.

有人会介意我为什么在控制台看到我:

#5
5
Run Code Online (Sandbox Code Playgroud)

代替

#5
0 //this should be done by move constructor?
Run Code Online (Sandbox Code Playgroud)

c++ move-constructor move-semantics c++11

7
推荐指数
2
解决办法
2万
查看次数

将成员函数定义或绑定到“variable like”关键字。不带括号执行

有没有办法将成员函数绑定到成员变量之类的东西?

假设我有简单的向量结构:

struct Vec3 {
    int x, y, z;

    Vec2 xy() const { return Vec2(x, y); }
    Vec2 xz() const { return Vec2(x, z); }
    Vec2 yz() const { return Vec2(y, z); }
}
Run Code Online (Sandbox Code Playgroud)

现在我可以像这样使用它:

Vec3 t = { 5, 3, 2 };
Vec2 s = t.xy() + t.yz();
Run Code Online (Sandbox Code Playgroud)

但有没有一种方法可以像这样使用它:

Vec3 t = { 5, 3, 2 };
Vec2 s = t.xy; // this here ? execute function without '()'.
Run Code Online (Sandbox Code Playgroud)

c++ variables bind function c++11

4
推荐指数
1
解决办法
545
查看次数

Haskell函数组成,(.)(.)的类型以及它是如何呈现的

所以我知道:

(.) = (f.g) x = f (g x)
Run Code Online (Sandbox Code Playgroud)

它的类型是(B-> C) - >(A-> B) - > A-> C但是怎么样:

(.)(.) = _? = _?
Run Code Online (Sandbox Code Playgroud)

这是如何表示的?我想到了:

(.)(.) = (f.g)(f.g)x = f(g(f(g x))) // this
(.)(.) = (f.g.h)x = f(g(h x)) // or this
Run Code Online (Sandbox Code Playgroud)

但就我试图获得它的类型而言,GHCi告诉我的不正确.那么什么都是"_?"

另外 - 函数/运算符$做什么?

haskell types function-composition operator-keyword

3
推荐指数
2
解决办法
1988
查看次数