小编Dav*_*all的帖子

在类中定义谓词

我有一个类的方法,我也希望能够用作谓词.

class MyClass {
  bool ParticleHasAncestor(const Particle &particle, int id) const;

  class AncestorPredicate {
    int mId;
   public:
    AncestorPredicate(int idCode) : mId(idCode) { }
    bool operator()(const Particle &particle) const { return ParticleHasAncestor(particle, mId); }
  };
};
Run Code Online (Sandbox Code Playgroud)

但是,编译器抱怨没有ParticleHasAncestor()MyClass实例就无法使用.我需要使用朋友班吗?或者有更好的解决方案吗?

我没有使用C++ 11,所以不能使用lambda函数.

更新: ParticleHasAncestor()无法使其成为静态,因为它使用MyClass的成员.

c++ stl predicate

3
推荐指数
1
解决办法
428
查看次数

使用Travis-CI测试Homebrew tap

我刚刚发现了Travis-CI,它似乎对测试Homebrew公式是否在不同系统上正确构建非常有用,特别是因为Homebrew已经安装在他们的VM上.简而言之,我有一个Homebrew tap,并希望使用Travis-CI来测试不同系统上的公式.

我看到这个工作的方式是有一个测试脚本,如:

brew update
brew tap <my/tap>
brew install <package>
brew test <package>
Run Code Online (Sandbox Code Playgroud)

但我能看到的一些问题是:

  • 这种情况下的语言是什么?我让Homebrew处理构建问题
  • Travis-CI似乎只允许每个存储库使用一个测试脚本,因此很难将每个公式的测试分开

关于这两点,有谁可以帮忙提一些建议?

homebrew travis-ci

3
推荐指数
1
解决办法
728
查看次数

从数组构造std :: set

为什么C++没有为我们提供一个以数组作为参数的构造函数?或者,定义以下功能有什么问题吗?

template <class T>
std::set<T> ArrayToSet(T array[]) {
  return std::set<T>(array, array + sizeof(array) / sizeof(array[0]));
}
Run Code Online (Sandbox Code Playgroud)

我认为答案可能归结为动态内存分配的想法,但我想听听一些有关此问题的反馈.

编辑:我没有使用C++ 11.

c++ arrays stl set

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

标签 统计

c++ ×2

stl ×2

arrays ×1

homebrew ×1

predicate ×1

set ×1

travis-ci ×1