腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
owent
专栏作者
举报
264
文章
335167
阅读量
30
订阅数
订阅专栏
申请加入专栏
全部文章(264)
其他(98)
c++(32)
编程算法(31)
打包(21)
https(19)
gcc(17)
ios(16)
人工智能(15)
linux(14)
java(12)
github(12)
数据结构(12)
开源(11)
html(10)
游戏(9)
lua(8)
.net(8)
ide(8)
git(8)
http(8)
windows(8)
网络安全(7)
javascript(6)
api(6)
python(5)
node.js(5)
css(5)
缓存(5)
c#(4)
android(4)
ubuntu(4)
SSL 证书(4)
压力测试(4)
rpc(4)
安全(4)
rust(4)
插件(4)
协程(4)
php(3)
jquery(3)
json(3)
容器镜像服务(3)
容器(3)
分布式(3)
tcp/ip(3)
nat(3)
case(3)
grpc(3)
protobuf(3)
std(3)
工具(3)
接口(3)
xml(2)
数据库(2)
云数据库 Redis(2)
sql(2)
unix(2)
centos(2)
文件存储(2)
wordpress(2)
正则表达式(2)
yum(2)
dns(2)
单元测试(2)
lnmp(2)
机器人(2)
sdk(2)
ipv6(2)
boost(2)
client(2)
excel(2)
function(2)
hash(2)
input(2)
ip(2)
key(2)
stl(2)
编译(2)
编译器(2)
事务(2)
数据(2)
DNS 解析 DNSPod(1)
渠道代理(1)
xcode(1)
ruby(1)
jquery ui(1)
qt(1)
单片机(1)
汇编语言(1)
arm(1)
嵌入式(1)
makefile(1)
云数据库 SQL Server(1)
搜索引擎(1)
专用宿主机(1)
日志服务(1)
命令行工具(1)
VPN 连接(1)
海外加速(1)
消息队列 CMQ 版(1)
腾讯云测试服务(1)
企业(1)
serverless(1)
kubernetes(1)
devops(1)
存储(1)
html5(1)
ssh(1)
gui(1)
线性回归(1)
ftp(1)
zookeeper(1)
markdown(1)
socket编程(1)
hexo(1)
powershell(1)
微信(1)
架构设计(1)
网站建设(1)
kafka(1)
action(1)
add(1)
bind(1)
bit(1)
cmd(1)
configure(1)
debug(1)
dp(1)
file(1)
firewall(1)
functor(1)
generator(1)
google(1)
goroutine(1)
handle(1)
handler(1)
iptables(1)
line(1)
list(1)
load(1)
memcpy(1)
nft(1)
nlog(1)
numbers(1)
openssl(1)
output(1)
promise(1)
queue(1)
sample(1)
search(1)
service(1)
set(1)
tablet(1)
target(1)
task(1)
vector(1)
web(1)
word(1)
x86(1)
变量(1)
队列(1)
分布式事务(1)
服务端(1)
函数(1)
互联网(1)
继承(1)
框架(1)
模板引擎(1)
配置(1)
索引(1)
系统(1)
指针(1)
搜索文章
搜索
搜索
关闭
VC和GCC内成员函数指针实现的研究(一)
c++
gcc
word
x86
继承
最近在《C++对象模型》一书里说到的virtual的成员函数指针,低于128的被cfront编译器认为是虚表偏移量(支持子类对父类函数的覆盖)。VC只是提了下单继承、多继承和虚继承的实现方案不同,GCC没有提及,所以就专门稍微深入分析研究下他们的实现机制。
owent
2023-03-17
476
0
Linux 编译安装 GCC 4.8
打包
gcc
python
linux
GCC4.8发布啦,这个脚本在之前4.7的基础上做了点改进,移除一些过时的组件,增加了检测不到时自动下载源码包
owent
2023-03-06
4.4K
0
libcopp对C++20协程的接入和接口设计
javascript
node.js
c++
css
gcc
最近开的坑有点多。有点忙不过来了所以好久没写Blog了。这个C++20的协程接入一直在改造计划中,但是一直没抽出时间来正式实施。 在之前,我写过一个初版的C++20协程接入 《libcopp接入C++20 Coroutine和一些过渡期的设计》 。当时主要是考虑到 Rust也有和C++类似的历史包袱问题,所以参考了一些Rust协程改造过程中的设计。 但是后来尝试在项目中使用的时候发现还是有一些问题。首先C++20的协程并不是零开销抽象,所以强行用Rust的模式反而带来了一定开销和理解上的难度。其次原先的设计中 generator 是按类型去实现外部接入的。但是实际接入SDK的过程中我们有相当一部分类型相同但是接入流程不同的情况,再加上现在各大编译器也都已经让C++20协程的特性脱离 experimental 阶段了,有一些细节有所变化。所以干脆根据我们实际的使用场景,重新设计了下组织结构。
owent
2023-03-06
574
0
再度优化GCC、LLVM、Clang、libc++、libc++abi等套件的构建脚本
c++
linux
打包
gcc
一直以来,我都维护了完整的 GCC 工具链构建工具 和 LLVM,Clang,libc++,libc++abi工具链构建工具 。 一方面是为了测试和体验新版本编译器的功能和利用一些更现代化的工具检查代码中的风险,另一方面也是为了给我得很多开源仓库做多版本适配。 其中所有的编译期依赖项(不包括 tar,awk等可执行程序的工具)都是自己构建的,这样也能管理好某些新版本组件需要的新版本依赖项,并且做到跨发行版兼容。同时很多发行版自带的 LLVM+Clang 套件都缺斤少两,有的缺少 clang-analyzer ,有的缺少 clang-format ,也有的缺少 libc++ 和 libc++abi 或者缺少sanitizer组件。我也是根据自己的需要编译并输出了大多数开发工具,甚至还有一些开发库以便二次开发(比如用libclang写工具来复用libcang的AST功能)。
owent
2023-03-06
3K
0
测试现代化硬件C++浮点数性能和一致性
ide
打包
单片机
gcc
arm
很久很久以前,浮点数的性能和跨平台跨硬件架构一致性是无法获得保证的,所以我们一般在需要强一致性和高性能的游戏服务器中会禁用浮点数,转而使用自己实现的定点数。 这么多年过去了,前段时间想看看现代化硬件下是否仍然有性能问题和是否能够保证一致性,做了些简单的测试,这里记录一下。
owent
2023-03-06
717
0
再次重构LLVM+Clang+libcxx+libc++abi+其他相关工具的构建流程
打包
c++
gcc
https
github
我们有时候写一些基础性类库或者实验新功能的时候,常常需要使用到最新版本的GCC和Clang。一些Linux发行版的源里和一些工具链(比如MSYS2)里其实自带LLVM套件的包,LLVM 官网也提供一些常见平台的预编译包下载。 那为什么我们还要自己编译呢?如果有注意到的小伙伴可能会发现,很多平台的源和 LLVM 官网 里下载的预编译包,其实是缺失很多组件的。有些没有libc++和libc++abi(CentOS 8),有些没有Sanitizer相关的组件,有些缺失其他的组件。而Clang虽然支持GCC的libstdc++,但是一方面我们写基础性类库还是要优先考虑原生STL库的兼容性,另一方面Clang对libstdc++的支持也不是太好,特别是有些第三方库在这个组合下也是没有适配得很好,同时gdb和libc++的搭配有时候也不是很完善。 所以我们就需要一个组件尽可能开完整地包含LLVM,Clang,libc++,libc++abi还有其他周边工具(各类Sanitizer,clang-tiny,clang-analyzer等等)的工具链。
owent
2023-03-06
1.9K
0
新版GCC和LLVM+Clang终于Release啦
c++
打包
html
http
gcc
可能是疫情的原因,GCC好久没发布啦。最近总于又Release了,还是大版本。并且三大编译器对C++20的支持也都七七八八了。所以特意立贴庆祝一下,顺带更新一波构建脚本把这两年的一些改动列举一下。
owent
2023-03-06
622
0
C++11动态模板参数和type_traits
c++
打包
ide
gcc
编程算法
C++11标准里有动态模板参数已经是众所周知的事儿了。但是当时还有个主流编译器还不支持。 但是现在,主要的编译器。VC(Windows),GCC(Windows,Linux),Clang(Mac,IOS)都已经支持了。所以就可以准备用于生产环境了。 type_traits没啥好说的。主要是一些静态检测。主要还是要看动态模板参数和他们两的结合使用上。 动态模版参数标准文档见: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf 和 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf 虽然贴出来了。估计是没人看得。所以就直接说重点。
owent
2023-03-05
476
0
[C++20] Module partitions和符号交叉引用(声明和实现分离)
编程算法
https
http
网络安全
gcc
C++20 开始支持 Module 了。在以前C++为了解决循环依赖问题,经常会把类或者函数声明写前面,实现写后面。然后中间的代码就可以实现内部模块的内聚而互相引用。比如:
owent
2021-03-29
1.4K
0
libcopp接入C++20 Coroutine和一些过渡期的设计
css
c++
gcc
rust
最近GCC 10.1.0 发布,三大编译器(MSVC、GCC、Clang)都已经支持了C++20协程,之前给 libcopp 接入 C++20协程 的计划也就提上了日程。C++20协程 在创建、切换开销和内存分配上和传统有栈协程相比有着无可比拟地优势。但是C++20全面普及还有相当长一段时间,所以我们设计的重要目标之一就是能够让以后的迁移更容易且更平滑地进行,本文则是记录了 libcopp 接入 C++20协程 时地一些性能上和平滑接入上的思考和成果。
owent
2020-05-25
1.5K
0
Linux 编译安装 GCC 4.8
linux
gcc
nat
GCC4.8发布啦,这个脚本在之前4.7的基础上做了点改进,移除一些过时的组件,增加了检测不到时自动下载源码包
owent
2018-08-01
6.9K
0
C++ 新特性学习(七) — 右值引用
java
gcc
C++在效率上有个硬伤。我们知道C#和Java对于类传递都是以引用的方式,而C++默认都是传值。在传值过程中就经常会进行复制构造,这完全没必要而且浪费CPU,为了解决这种问题,于是乎C++11 增加了一个新的非常数引用(reference)类型,称为右值引用(R-value reference)。我就专门看了一下关于右值引用的东西。 右值引用在GCC 4.3之后开始支持,VS 2010(VC 10.0)已经支持,再前一点的VC版本没试过所以不知道。 右值引用的申明标记为T &&,主要用于处理临时变量,比如函数返回的变量(暂时想不出其他例子,忽略返回值优化吧,(命名)返回值优化参见http://efnetcpp.org/wiki/Return_value_optimization,再说返回值优化能力有限是吧,比要求如单返回语句、不能使用异常等等),避免复制构造。同时在析构的时候就不会析构这个临时变量,从而提升效率。 上代码:
owent
2018-08-01
570
0
C++11动态模板参数和type_traits
人工智能
windows
gcc
linux
ios
C++11标准里有动态模板参数已经是众所周知的事儿了。但是当时还有个主流编译器还不支持。 但是现在,主要的编译器。VC(Windows),GCC(Windows,Linux),Clang(Mac,IOS)都已经支持了。所以就可以准备用于生产环境了。 type_traits没啥好说的。主要是一些静态检测。主要还是要看动态模板参数和他们两的结合使用上。 动态模版参数标准文档见: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf 和 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf 虽然贴出来了。估计是没人看得。所以就直接说重点。
owent
2018-08-01
1.6K
0
我们的Lua类绑定机制
lua
gcc
最近一个人搞后台,框架底层+逻辑功能茫茫多,扛得比较辛苦,一直没抽出空来写点东西。
owent
2018-08-01
2.3K
0
重写了llvm+clang+libc++和libc++abi的构建脚本
gcc
由于之前整理的服务器框架已经完成了,就需要用各种静态分析工具跑一遍。原来的llvm+clang的编译脚本是从GCC那个脚本copy过来然后改的,使用的时候各种问题。所以干醋重新折腾一遍,重写了。
owent
2018-08-01
2K
0
对atbus的小数据包的优化
压力测试
gcc
atbus是我按之前的思路写得服务器消息通信中间件,目标是简化服务器通信的流程,能够自动选择最优路线,自动的断线重连和通信通道维护。能够跨平台并且高效。
owent
2018-08-01
6.8K
0
GCC 7和LLVM+Clang+libc++abi 4.0的构建脚本
gcc
之前的版本发完,有空来更新一下之前的gcc和llvm+clang工具链的编译脚本了。其实GCC 7是才release没多久但是llvm 4.0发布其实有一段时间了。
owent
2018-08-01
897
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档