owent.net
小记最近踩得两个C++坑 | I'm OWenT
https://www.owent.net/2015/07/小记最近踩得两个c坑.html
小记最近踩得两个C 坑 – I'm OWenT. 获取某个容易的迭代器,迭代器内包含智能指针 std: shared ptr. Std: map int, std: shared ptr T outter map; void func1(int a) { std: map int, std: shared ptr T : const iterator iter = outter map.find(a); if (iter! Outter map.end() { func2(iter- second); } } void func2(const std: shared ptr T and obj ptr) { if (! Obj ptr) { return; } / 从逻辑隔离的角度,按照正常的语义,这里之后obj ptr应该一直有效了吧 / . ,执行了茫茫多操作以后,间接调用了outter map.erase([上一层函数用到的a]) obj ptr- xxx; / 这里崩溃了,因为智能指针常量不再有效 }. 本文短地址: https:/ www.owent.net/Il9XS. Or, you ca...
owent.net
C++11动态模板参数和type_traits | I'm OWenT
https://www.owent.net/2014/01/c11动态模板参数和type_traits.html
C 11动态模板参数和type traits – I'm OWenT. VC(Windows),GCC(Windows,Linux),Clang(Mac,IOS)都已经支持了。 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. Template typename. T void print(T. t){ printf(%d,%d,%d n, t.); }. Type declare 类型声明,比如上文例子中的 const T& #8230;. 这套接口可以通过 GET 0 ([TUPLE]). 以上代码摘自GCC 4.8.1,VC下也类似。 Build index tuple sizeof…. Bound args) : type Bound indexes; 没错秘诀就在这里。 本文短地址: https:/ www.owent.net/b3YVH. 2014 年 01 月 27 日.
owent.net
LLVM+Clang+Libcxx+Libcxxabi(3.6)工具链编译(完成自举编译) | I'm OWenT
https://www.owent.net/2015/04/llvmclanglibcxxlibcxxabi(3-6)工具链编译(完成自举编译).html
LLVM Clang Libcxx Libcxxabi 3.6 工具链编译 完成自举编译 – I'm OWenT. LLVM Clang Libcxx Libcxxabi 3.6 工具链编译 完成自举编译. Linux 编译安装 LLVM Clang 3.6. 脚本托管在 https:/ github.com/owent-utils/bash-shell/tree/master/LLVM%26Clang%20Installer/3.6. 相对于上一个版本 Linux 编译安装 LLVM Clang 3.5. 第二次自举编译完成后,不再依赖libstdc ,转而依赖编译出来的libc 和libc abi,但是仍然会依赖libgcc s.so。 这时候可以通过手动cd到编译目录,执行 make & make install 即可. 编译安装 LLVM Clang 3.6. GCC 47 or higher. Libc 3.6.0. Libc abi 3.6.0. Llvm 3.6.0. Clang 3.6.0. Lldb 3.6.0. Install.sh -t lld. 2015 年 04 月 08 日.
owent.net
tolua++内存释放坑 | I'm OWenT
https://www.owent.net/2015/01/tolua内存释放坑.html
Tolua 内存释放坑 – I'm OWenT. 我这里用得是tolua 1.0.93版本。 Tolua 在new一个类的时候,会把类指针作为userdata传入lua,建立metatable并通过 tolua classevents. 这里面可以看到gc方法被设成了 G.tolua gc event. Lua pushstring(L," gc"); lua pushstring(L, "tolua gc event"); lua rawget(L, LUA REGISTRYINDEX); /*lua pushcfunction(L,class gc event);*/ lua rawset(L,-3);. 那么关键是这个 G.tolua gc event. 垃圾回收函数使用的是 class gc event. 并且添加了两个闭包参数 G.tolua gc. Gtolua gc[p] = getmetatable(t). 具体见 tolua register gc. 然后坑爹的就来了 tolua default collect. 2015 年 01 月 08 日. Yes, replies to my...
owent.net
gitlab腾讯企业邮箱配置 | I'm OWenT
https://www.owent.net/2015/01/gitlab腾讯企业邮箱配置.html
Gitlab腾讯企业邮箱配置 – I'm OWenT. 比如我的邮箱admin@owent.net. 本文短地址: https:/ www.owent.net/GY4Cm. 2015 年 01 月 23 日. View all posts by OWenT →. Android NDK undefined reference to tls get addr 错误 →. No, do not subscribe. Yes, replies to my comment. Yes, all comments/replies. Or, you can subscribe without commenting. I'm OWenT — API 个人小应用发布地址. I'OWenT — APP (合作小应用发布地址).
owent.net
关于firewalld和systemd的一些命令速记 | I'm OWenT
https://www.owent.net/2015/04/关于firewalld和systemd的一些命令速记.html
关于firewalld和systemd的一些命令速记 – I'm OWenT. CentOS 7 已经用firewalld替换掉了iptables并用systemd来管理启动服务 之前是chkconfig。 关于firewalld http:/ fedoraproject.org/wiki/FirewallD/zh-cn. 在 /etc/firewalld/services 创建 [服务名称].xml. Xml version="1.0" encoding="utf-8"? Service short 服务名称 /short description 服务名称 server port whitelist /description port protocol="协议" port="端口"/ port protocol="tcp" port="8001"/ /service. 关于systemd https:/ wiki.archlinux.org/index.php/Systemd %28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29. 1, s, single. Syste...
owent.net
Jenkins(hudson)插件记录 | I'm OWenT
https://www.owent.net/2015/04/jenkinshudson插件记录.html
Jenkins(hudson)插件记录 – I'm OWenT. Matrix Authorization Strategy Plugin. 和 Matrix Project Plugin. 本文短地址: https:/ www.owent.net/nSotO. 2015 年 04 月 21 日. View all posts by OWenT →. No, do not subscribe. Yes, replies to my comment. Yes, all comments/replies. Or, you can subscribe without commenting. I'm OWenT — API 个人小应用发布地址. I'OWenT — APP (合作小应用发布地址).
owent.net
Android NDK undefined reference to ___tls_get_addr 错误 | I'm OWenT
https://www.owent.net/2015/02/android-ndk-undefined-reference-to-___tls_get_addr-错误.html
Android NDK undefined reference to tls get addr 错误 – I'm OWenT. Android NDK undefined reference to tls get addr 错误. 本来看到Android的ndk都开始用gcc4.8和gcc4.9了,而且gcc4.8.1开始支持全部的c 11的特性,我就很happy地用上了。 网上查到说是Android的run time竟然不支持 thread local storage TLS. 具体见: https:/ github.com/owent-utils/c-cpp/blob/master/include/std/thread.h. 本文短地址: https:/ www.owent.net/41UTL. 2015 年 02 月 06 日. View all posts by OWenT →. No, do not subscribe. Yes, replies to my comment. Yes, all comments/replies.
owent.net
Redis全异步(HA)Driver设计稿 | I'm OWenT
https://www.owent.net/2015/07/redis全异步hadriver设计稿.html
Redis全异步(HA)Driver设计稿 – I'm OWenT. Redis 3.X已经release,这个版本提供了一个重要的功能,那就是集群 Cluster。 Redis Cluster不支持多个DB分区 一定要用DB0 并且最好对于不同类型业务可以部署在不同集群里,以便减少不同模块之间的影响,所以也需要提供多集群功能 类似SQL中的多个数据库. 要支持多个通道 Channel 的设计 类似Redis的多个DB库 要实现不同通道之间完全隔离。 在使用Cluster时,涉及多个key的指令,这些key必须拥有相同的hash值或hash tag,详见 http:/ redis.io/topics/cluster-tutorial#migrating-to-redis-cluster. 比如正在扩容的过程中 某个slot由A转向了B ,数据可能还没全部转移完,那么访问A节点的这个slot时,可能找不到数据,这时候ASK跳转可以把目标指向当前有数据的节点 B。 以上思路我会先在 https:/ github.com/owt5008137/hiredis-happ. 2015 年 07 月 04 日.
owent.net
Vim常用命令 | I'm OWenT
https://www.owent.net/2015/05/vim常用命令.html
Vim常用命令 – I'm OWenT. 见 https:/ github.com/owent-utils/vim. 向上搜索 v # 进入可视化模式 Ctrl v # 列编辑模式 Shift i # 多列插入 d[d/w] # 剪切[行/单词] y[y/w] # 复制[行/单词] =[=] # 自动缩进[行] p # 查看模式 粘贴 u # Undo Ctrl r # 查看模式 Redo Ctrl r Ctrl " # 命令行模式/编辑模式 粘贴 :e # 更新缓冲区 zo # 展开折叠 zc # 折叠. 和正则表达式不同的的一个地方在于,用于全字匹配的 b在vim里是 :s/src/dst/ # 文本替换(当前行第一个src替换为dst) :s/src/dst/g # 文本替换(当前行所有src替换为dst) :%s/src/dst/g # 文本替换(所有行第一个src替换为dst) :%s/src/dst/g # 文本替换(所有行所有src替换为dst) :n,$s/ # 从第n行到结尾,类似正则表达式 :%s/ # 全文搜索 */# # 在当前文件中搜索当前光标的单词. Control-w co...
SOCIAL ENGAGEMENT