logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

从goahead代码的bug看aarch64平台的移位操作

假设再32位arm平台的一个移位操作int bit = 1<<30;这是合法的。那么平台换成了64位arm,int bit = 1 << 34;合法吗,显然不合法,因为int的长度就是32 比特,不管再32位arm还是64位arm上。要移动34位显然超出了它的表示范围。我们知道在aarch64架构下,long是64位的,那么改成:long bit = 1 <<

C++的generate函数

generate函数用于为容器的各个元素赋值,其用法类似于for_each。只不过它的第三个参数必须是lambda函数或者函数,或者函数对象,即均有重载operator()()的类对象。例子:vector<int> sint;int i = 0;generate(sint.begin(), sint.end(), [&i](){i++;retu...

到底了