小编Kos*_*tas的帖子

__int128的位操作

我试图将位添加到__int128(使用clang编译器和64位系统),但失败了.

__int128 x = 0;                           //DECLARING AND INITIALIZING X
x |= ((static_cast<__int128>(1)) << 95);  //ADDING A '1' TO 95th BIT (from right)
std::cerr<< std::bitset<100>(x) << std::endl;  //PRINTING BITSET
Run Code Online (Sandbox Code Playgroud)

打印:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

我知道我可以使用unsigned int或long long int的简短形式,例如
(1u << 15)或(1LL << 15),但我没有找到任何128位的等价物.

我需要做什么才能使这项工作成功?

c++ bit-manipulation

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

在可变 lambda 中通过常量引用捕获

我正在寻找一种方法来捕获 by const&,甚至const在可变 lambda 上。类似于下面的语法。有没有好的方法可以做到这一点?

#include <future>
#include <vector>
int main() {
  std::promise<int> p;
  const int N = 2;
  std::vector<int> v = {1,2,3};
  auto foo = [const& N, const& v, p = std::move(p)]() mutable {
    v.push_back(4); // Should not compile
    p.set_value(v[N]);
  };
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda

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

如何从终端递归删除特定名称的文件

我想从子文件夹中删除所有 emacs 备份 (~) 文件。我知道我可以cd在每个文件夹中删除它们rm *~(例如备份文件 test.cpp~)。

如何使用一个命令删除这些文件,而无需在每个文件夹中进行 cd'ing?

(我试过了rm -r *~rm -rf *~但它们似乎不起作用)

terminal rm

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

SML中来自元组的"Curry"

我试图定义一个函数包装器,用于在SML中计算元组.

fun curry f = fn (x, y) z => f x y z;
Run Code Online (Sandbox Code Playgroud)

给我错误

非标识符应用于模式.

我是ML的新手,不知道为什么模式匹配fn不起作用.

我怎么能做这个工作?

functional-programming sml mosml

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