热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

移植Rust的unwrap()到C++的尝试

背景:了解rust的都知道,在快速开发原型项目时,rust的错误处理机制非常省事儿,如unwrap()和expect(arg).在工作中不得不写大量的cc程序,被Rust宠坏了,已

背景:了解rust的都知道,在快速开发原型项目时,rust的错误处理机制非常省事儿,如unwrap()和expect(arg).在工作中不得不写大量的cc程序,被Rust宠坏了,已经不满足cc的异常处理了.怎么办?

尝试:用宏自己造呗.

#define unwrap(x) if(x) { printf("Panic at %s/%d in %s.\n",__FILE__,__LINE__,__FUNCTION__); return 0; }

宏名没大写是因为习惯了Rust,x用来装中断条件,如unwrap(p==nullptr);这里x更倾向函数返回值的错误条件.

注:此宏适用可从返回值判断是否出错的函数,抛异常的函数不适用!此宏仅适用快速原型开发,最后你可以集中精力处理和修改这些错误处理.


推荐阅读
author-avatar
seazz2001
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有