小编Tim*_*ann的帖子

什么是默认的Jenkins密码?

我正在使用EC2服务器实例.使用以下方法安装Jenkins:

wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins
Run Code Online (Sandbox Code Playgroud)

但我需要在Jenkins服务器上安装软件,所以在我的EC2实例中我做了

sudo –s –H –u jenkins
Run Code Online (Sandbox Code Playgroud)

进入jenkins服务器.然后我试着去做

sudo cabal install quickcheck
Run Code Online (Sandbox Code Playgroud)

但它促使我提供jenkins密码.我一直在互联网上搜索4小时,没有什么能帮助我获得jenkins服务器的管理权限.

所以我在shell中使用以下命令构建我的项目:

sudo cabal clean
sudo cabal configure
sudo cabal build
sudo cabal install
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

 Started by timer
Building in workspace /var/lib/jenkins/jobs/Finance/workspace
Checkout:workspace / /var/lib/jenkins/jobs/Finance/workspace - hudson.remoting.LocalChannel@eea6dc
Using strategy: Default
Last Built Revision: Revision b638e2182dece0ef1a40232b1d75fa3ae5c01a5d (origin/master)
Fetching changes from 1 remote Git …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 jenkins

51
推荐指数
8
解决办法
20万
查看次数

是否可以在标头中声明constexpr类并在单独的.cpp文件中定义它?

Dimension在一个文件Dimension.h中定义了一个类(比如我的所有类):

class Dimension
{
public:

    constexpr Dimension() noexcept;

    constexpr Dimension(int w, int h) noexcept;

    int width;
    int height;

};
Run Code Online (Sandbox Code Playgroud)

我认为我可以像在所有类中一样将定义放在一个单独的Dimension.cpp中:

#include "Dimension.h"

constexpr Dimension::Dimension() noexcept : width(0), height(0) {}

constexpr Dimension::Dimension(int w, int h) noexcept : width(w), height(h) {}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用该类时,编译器会告诉我:

警告:内联函数' constexpr Dimension::Dimension()'已使用但从未定义过

并在链接时:

未定义的引用' pong::graphics::Dimension::Dimension()'

(与其他构造函数相同)

如果我在标题中定义类,如下所示:

class Dimension
{
public:

    constexpr Dimension() noexcept : width(0), height(0) {}

    constexpr Dimension(int w, int h) noexcept : width(w), height(h) {}

    int width;
    int height;

};
Run Code Online (Sandbox Code Playgroud)

并省略.cpp文件,一切正常.

我正在使用GCC …

c++ c++11

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

当重载等于运算符==时,应该首先检查引用相等性吗?

当重载operator ==()时,我目前正在

bool operator==(const X& lhs, const X& rhs)
{
    return &lhs == &rhs || /* member comparisons ... */;
}
Run Code Online (Sandbox Code Playgroud)

意思是我首先检查对象的引用是否相等,然后检查所有成员的相等性。这是“正确”的方法吗?有什么需要记住的事情吗?这种实现方式是最有效的方法吗?

c++ operator-overloading

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

定义内联函数的正确方法是什么?

假设我有一个X级(Xh):

class X {
  private:
    unsigned unitsSold = 0;
    double revenue = 0.0;

  public:
    double avgPrice();
}
Run Code Online (Sandbox Code Playgroud)

应该avgPrice()定义哪种方式?

选项1(课堂):

XH

class X {
  private:
    unsigned unitsSold = 0;
    double revenue = 0.0;

  public:
    double avgPrice() {
      return unitsSold ? revenue / unitsSold : 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

选项2(与类相同的文件,但在类定义之外):

XH

class X {
  private:
    unsigned unitsSold = 0;
    double revenue = 0.0;

  public:
    double avgPrice();
}

inline double X::avgPrice() {
  return unitsSold ? revenue / unitsSold : 0; …
Run Code Online (Sandbox Code Playgroud)

c++ inline

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

模板函数作为模板参数

我正在学习模板并尝试实现此方法:

template <typename Func, typename Left, typename Right>
void flipArgs(Func* function, Left&& leftArg, Right&& rightArg) {
    function(std::forward<Right>(rightArg), std::forward<Left>(leftArg));
}
Run Code Online (Sandbox Code Playgroud)

它需要一个函数和两个参数,并在翻转两个参数的情况下调用给定的函数.

它的功能很好,例如:

void test1(std::string, int) {
}
Run Code Online (Sandbox Code Playgroud)

当我尝试这个功能时:

template <typename T>
void test2(T&& a, int) {
}
Run Code Online (Sandbox Code Playgroud)

附:

string s("test");
flip(test2<string>, 42, s);
Run Code Online (Sandbox Code Playgroud)

编译器(g ++ 4.7.1)告诉我:

错误:无法将'std :: basic_string'左值绑定到'std :: basic_string &&'

我认为一个函数参数,如T&&可以绑定rvaluelvalue引用的特殊情况?我究竟做错了什么?

c++ templates c++11

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

为什么顺序流和并行流的减少结果不同?

我有以下列表integers(所有数字从0到999,999):

List<Integer> integers = new ArrayList<>();
for (int i = 0; i != 10_000_000; ++i) {
    integers.add(i);
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试将以下内容作为Java 8 Stream运行:

int sum = 0;
for (Integer i : integers) {
    sum = i % 2 == 0 ? i - sum : i + sum;
}
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)

我期待以下输出:

0 - 0 = 0  
1 + 0 = 1  
2 - 1 = 1   
3 + 1 = 4  
4 - 4 = 0  
5 + 0 = …
Run Code Online (Sandbox Code Playgroud)

java parallel-processing java-8 java-stream

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

为什么 Git 扩展会在启动时打开存储库?如何在启动时更改默认存储库?

我最近更改了计算机上的编程工作区。我创建了一个目录 C:\programming,其中包含与编程相关的所有内容、工具、编译器、库、代码库等。

我想要一个可以在任何地方使用的默认结构,所以我想,为什么不为我的编程工作区创建一个 git 存储库,我可以在任何我想要编程的新设备上查看它?!

所以我这样做了。

几天后,我开始想知道为什么每次启动 Git Extensions 时,它总是打开 C:\programming 作为存储库。

我尝试从最新的存储库列表中删除 C:\programming,删除所有配置文件,在注册表中搜索条目......都没有成功。

如何更改 Git 扩展以不总是将 C:\programming 作为存储库打开?

git-extensions

0
推荐指数
1
解决办法
524
查看次数