小编mik*_*kol的帖子

什么时候调用std :: thread析构函数?

我知道std::thread析构函数是在主出口或线程对象超出范围时调用的。

但是,当它所调用的函数完成执行时,它还会被销毁吗?
如果不是这样的线程会发生什么,我还join()可以吗?

c++ stdthread

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

如何在haskell中更改构造函数的优先级

我正在做一个关于为我的Maybe数据类型中的对象实现括号的练习:
我想要实现的是这种括号:

-- MyJust 'a'

-- MyJust (MyJust 'a')

-- MyJust MyNothing

data MyMaybe a = MyNothing | MyJust a

instance Show a => Show (MyMaybe a) where
  showsPrec _ MyNothing = showString "MyNothing"

  showsPrec p (MyJust x) =
    showParen(p>6)(showString "MyJust ".showsPrec 7 x)
Run Code Online (Sandbox Code Playgroud)

我的代码有效,但有些事情我不明白。首先MyJust运算符的优先级是什么(它必须小于 6 ,否则我会得到类似的东西(MyJust (MyJust 'a'))?另一个问题是我如何将其更改为 9,例如,以便我得到(MyJust (MyJust 'a'))?我试过了,infixl 9 'MyJust'但它不起作用. 我要求这样做是为了更好地理解haskell 中的优先级。

haskell

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

标签 统计

c++ ×1

haskell ×1

stdthread ×1