小编And*_*rew的帖子

C++中的静态结构

我想定义一个结构,其中将存储一些数学常量.
这就是我现在所拥有的:

struct consts {
    //salt density kg/m3
   static const double gamma;
};

const double consts::gamma = 2350;
Run Code Online (Sandbox Code Playgroud)

它工作正常,但会有超过10个浮点常量,所以我不想在它们之前写'static const'.并定义类似的东西:

static const struct consts {
    //salt density kg/m3
   double gamma;
};

const double consts::gamma = 2350;
Run Code Online (Sandbox Code Playgroud)

它看起来很好,但我得到了这些错误:
1.不允许成员函数重新声明
2.非静态数据成员可能不在其类外定义

我想知道是否有任何C++方法可以做到这一点?

c++ static struct const

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

如何在阻止之前"期望"改变rspec中的某些内容?

我有一个以这种方式构建的测试套件:

let(:cat) { create :blue_russian_cat } 
subject { cat }

context "empty bowl" do
  let!(:bowl) { create(:big_bowl, amount: 0) }
  before { meow }

  # a ton of `its` or `it` which require `meow` to be executed before making assertion
  its(:status) { should == :annoyed }
  its(:tail) { should == :straight }
  # ...

  # here I want to expect that number of PetFishes is going down after `meow`, like that
  it "will eat some pet fishes" do
    expect {???}.to …
Run Code Online (Sandbox Code Playgroud)

ruby rspec

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

C++模板限制

我想知道有没有办法对模板类设置限制?
指定模板中替换的每个类型必须具有特定的祖先(实现一些接口).

template < class B > //and every B must be a child of abstract C
class A {
public:
    B * obj;
    int f() {
        return B::x + this->obj->f();
    }
};
Run Code Online (Sandbox Code Playgroud)

喜欢=> in haskell

func :: (Ord a, Show b) => a -> b -> c
Run Code Online (Sandbox Code Playgroud)

c++ templates

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

如何显示ScalaTest中给定和预期的差异?

如果您匹配列表或地图或任何其他复杂结构,那么查看给定内容与预期内容之间的差异非常有用.例如:

Map("a" -> 1, "b" -> 2, "c" -> 3) should equal Map("a" -> 1, "b" -> 5, "c" -> 3)

// ScalaTest output:
[info] Map("a" -> 1, "b" -> 2, "c" -> 3) did not equal Map("a" -> 1, "b" -> 5, "c" -> 3) (Test.scala)
[info]   org.scalatest.exceptions.TestFailedException:
[info]   ...
Run Code Online (Sandbox Code Playgroud)

您必须手动浏览两个地图才能找到它们之间的差异,您的收藏越大,它就越难.

另一方面,在RSpec中你会得到:

expect({a: 1, b: 2, c: 3}).to match({a: 1, b: 5, c: 3})

// RSpec output:
 Failure/Error: it { expect({a: 1, b: 2, c: 3}).to match({a: 1, b: …
Run Code Online (Sandbox Code Playgroud)

rspec scala scalatest

9
推荐指数
1
解决办法
1013
查看次数

如何使用IcedCoffeeScript正确处理错误?

node.js中的常见做法是将错误消息作为回调函数的第一个参数返回.纯JS(Promise,Step,seq等)中有许多解决这个问题的方法,但它们似乎都不能与ICS集成.什么是正确的解决方案来处理错误而不会失去很多可读性?

例如:

# makes code hard to read and encourage duplication
await socket.get 'image id', defer err, id
if err # ...
await Image.findById id, defer err, image
if err # ...
await check_permissions user, image, defer err, permitted
if err # ...


# will only handle the last error
await  
  socket.get 'image id', defer err, id
  Image.findById id, defer err, image
  check_permissions user, image, defer err, permitted

if err  # ...


# ugly, makes code more rigid
# no …
Run Code Online (Sandbox Code Playgroud)

error-handling node.js coffeescript iced-coffeescript

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

如果在数据定义中声明类型,为什么我必须在函数中指定类型类?

如果我有一个具有指定类型类限制的ADT,我仍然必须使用此数据类型为每个函数指定相同的类型类.这是什么原因以及如何减少不必要的打字?

例如:

data Eq a => C a = V a
g :: C a -> Bool
g (V a) = a == a
Run Code Online (Sandbox Code Playgroud)

我有:

test.hs:32:13:
    No instance for (Eq a)
      arising from a use of `=='
    In the expression: a == a
    In an equation for `g': g (V a) = a == a
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)

而:

g :: Eq a => C a -> Bool
Run Code Online (Sandbox Code Playgroud)

工作正常,但如果我有一长串的函数,每次指定一个类型类成为一个负担:

f :: Eq a => C a -> Bool
f …
Run Code Online (Sandbox Code Playgroud)

haskell typeclass

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

如果这些笔记的提交被压扁,有没有办法自动合并笔记?

例如:

git commit -am "Something"
git notes append -m "Dark "
git commit -am "Something"
git notes append -m "Side"

git rebase -i
# now I squash two commits and I expect to see "Dark Side" here
# but it show that note is undefined
git notes show 
Run Code Online (Sandbox Code Playgroud)

git git-notes

7
推荐指数
1
解决办法
733
查看次数

(vim profiling)VIM 256色模式,滞后php文件

我在vim中使用256色主题(设置t_Co = 256),所有php文件打开大约8秒.

  • 这是我的本地双核机器
  • 它不依赖于我使用的配色方案(zenburn,wombat,wombat256)
  • HTML,Python,JS或其他所有文件都会暂时打开
  • 创建新的php文件大约需要8秒(:o newfile.php)
  • 正确设置了终端
  • 如果我使用16种颜色(设置t_Co = 16),一切都很好

我真的想要使用256色模式,它看起来更漂亮,但我无法摆脱这种滞后.

vim performance profiling lag 256color

6
推荐指数
1
解决办法
888
查看次数

哈斯克尔有没有态射?

我有一些GADT代表lambda演算中的一个术语.

data Term a = 
      Var a
    | Lambda a (Term a)
    | Apply (Term a) (Term a)
Run Code Online (Sandbox Code Playgroud)

我想要做的是在该类型上有一个通用的转换接口.它应该具有类似于此的类型签名:

(Term a -> Term a) -> Term a -> Term a
Run Code Online (Sandbox Code Playgroud)

编写此函数很容易:

fmap' :: (Term a ? Term a) ? Term a ? Term a 
fmap' f (Var v) = f (Var v)
fmap' f (Lambda v t) = Lambda v (fmap' f t)
fmap' f (Apply t1 t2) = Apply (fmap' f t1) (fmap' f t2)
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是haskell(或haskell库)中有某种通用结构来进行这种转换(类似于Functor它应该叫做态射)?

haskell functional-programming functor

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

正则表达式中贪婪的"或"群体存在吗?

我有一个自动生成的正则表达式,它基本上是一个大的"或"组,如下所示:

(\bthe\b|\bcat\b|\bin\b|\bhat\.\b|\bhat\b)
Run Code Online (Sandbox Code Playgroud)

我已经注意到了

hat.
Run Code Online (Sandbox Code Playgroud)

它只会匹配"帽子",而不是"帽子".我想要的.有没有办法让它更贪婪?

更新:忘记了单词边界,对不起.

python regex

6
推荐指数
1
解决办法
1228
查看次数