定制一个FlatBuffers编译器
个人并不喜欢FlatBuffers编译器生成的代码,原因是我已经习惯了unix风格的代码。
不喜欢之处大致有以下:
1 命名法使用了Pascal命名法,而我个人习惯了小写字母加下划线式的unix式命名法;
2 Create类的函数参数列表的所有参数都堆在一行,非常惨不忍睹,我自己习惯于每行一个参数式的风格;
3 生成的头文件连个预防文件被重复引用的宏都没有;
4 同一个struct或table的所有函数都在一起放着,不同函数之间没有一个空行分割,而且几乎所有的函数都只占用了一行,如果你要进行代码调试,这就非常不方便;
5 生成的文件名称都以"_generated.h"结尾,个人习惯protobuf格式".pb.h"结尾的文件命名法,我把它改为了以".fb.h"结尾;
6 把常用的namespace和struct以及相应的method进行的重命名;
Fork了自己的分支后,基于以上几点修改了idl_gen_cpp.cpp后,我定制了自己一个自己版本的FlatBuffers编译器。详细代码见https://github.com/AlexStocks/flatbuffers/blob/master/src/idl_gen_cpp.cpp。
定制一个FlatBuffers编译器的更多相关文章
- 定制一个winCE5.0操作系统
定制一个winCE5.0操作系统 2009-04-01 09:01:14| 分类: winCE|字号 订阅 定制一个操作系统并模拟器上运行,需要以下几个步骤: STEP 1:用Platfor ...
- 使用 App Studio 快速定制一个你自己的专属应用
使用 App Studio 快速定制一个你自己的专属应用 如果已有做一个手机应用的想法,只需要一些简单的图片,视频,或者RSS源,就可以通过App Studio制作出你心仪的应用! App Studi ...
- 为VS定制一个自己的代码生成器 - 自定义工具开发
自定义工具开发 为VS定制一个自己的代码生成器 如何在Visual Studio中开发自己的代码生成器插件 你必须懂的 T4 模板:深入浅出 Regasm组件注册工具使用方法 Regasm 注册C# ...
- 用java实现一个简易编译器1-词法解析入门
本文对应代码下载地址为: http://download.csdn.net/detail/tyler_download/9435103 视频地址: http://v.youku.com/v_show/ ...
- 定制一个支持中英文的简单LaTex模板
平常写汇报文档什么的,word排版有时还是比较费劲,遂定制一个简单的LaTex模板,中文默认为宋体,英文为LaTex默认字体,支持彩色高亮展示,有目录书签,有页眉展示,大致如下: LaTex代码如下: ...
- 定制一个类似地址选择器的view
代码地址如下:http://www.demodashi.com/demo/12832.html 前言: 这几天也是闲来无事,看看有什么和Scroller相关的控件需要巩固下,原因很简单,前几天看到相关 ...
- 用Scratch2.0源码定制一个自己的编辑器
用Scratch2.0源码定制一个自己的编辑器,换成自己的软件名称和图标,添加中文字体,修复汉化错误等等1.准备:下载Scratch2.0源码.安装开发工具Adobe Flash Builder4.7 ...
- Django从Models 10分钟定制一个Admin后台
目录 Django从Models 10分钟建立一套RestfulApi Django从Models 10分钟定制一个Admin后台 简介 Django自带一个Admin后台, 支持用户创建,权限配置和 ...
- [js插件开发教程]定制一个手风琴插件(accordion)
本文带来一个垂直方向的手风琴插件开发,可以定制的功能如下: contentClass : 'panel', //面板样式navClass : 'nav', //导航样式activeClass : 'a ...
随机推荐
- A - 畅通工程
A - 畅通工程 Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- jdbc框架 commons-dbutils的使用
commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序 ...
- git服务器gitlab之搭建和使用--灰常好的git服务器【转】
转自:http://blog.csdn.net/zy416548283/article/details/38057925 git服务器比较有名的是gitosis和gitolite,这两个管理和使用起来 ...
- 使用git建立本地仓储管理代码【转】
转自:http://blog.csdn.net/airk000/article/details/7738231 Git是Linus大神的代码管理工具,简直说是开发者的超级福音,而作为屌丝的个人开发者, ...
- 总结Allegro元件封装(焊盘)制作方法[修整]
总结Allegro元件封装(焊盘)制作方法 在Allegro系统中,建立一个零件(Symbol)之前,必须先建立零件的管脚(Pin).元件封装大体上分两种,表贴和直插.针对不同的封装,需要制作不同的P ...
- Java 基础-运算符
Java运算符 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 运算符优先级 1. 算术运算符 运算符 运算 范例 结果 + 正号 +3 3 - 负号 b=4;-b -4 + 加 5+5 1 ...
- Winform——计算器
namespace 计算器2._0 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } pr ...
- [ionic开源项目教程] - 手把手教你使用移动跨平台开发框架Ionic开发一个新闻阅读APP
前言 这是一个系列文章,从环境搭建开始讲解,包括网络数据请求,将持续更新到项目完结.实战开发中遇到的各种问题的解决方案,也都将毫无保留的分享给大家. 关注订阅号:TongeBlog ,查看移动端跨平台 ...
- Servlet的页面跳转
Servlet的跳转 内部跳转 req.getRequestDispatcher() Server--->AServlet--->BServlet 两个S ...
- Wireshark基本介绍和学习TCP三次握手(转)
http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇博客:用 Fiddler 来调试HTTP,HTTPS. 这篇 ...