google tool:protobuf(持续更新)

protobuf是google推出的一个非常好用的工具,

protobuf version diff

在不同protobuf的版本间会有细微的不同。
在2.4.0及更早版本中,生成的C++代码会将枚举类型的值放在全局命名空间中,而不是将枚举附属于具体的枚举类型作用域之下。这种情况下,枚举值通过ENUMTYPE_ENUMVALUE的形式出现,其中ENUMTYPE是枚举类型的名字,ENUMVALUE是枚举值的名字,它们之间通过下划线连接。因此,在这些老版本的protobuf生成的代码中,你会看到使用下划线来访问枚举值。

从protobuf 2.4.1起,开始支持基于C++11的特性,其中一个显著的改变就是枚举被生成为强类型枚举(enum class,且放置在其枚举类型作用域之下,这意味着从此版本开始,就不再需要通过下划线来访问嵌套的枚举值,而是采用更现代的作用域解析操作符(::)。

当采用高于protobuf 2.4.0版本时,开发者也可以通过编译选项选择兼容,使生成的代码符合旧的访问模式。但是,随着C++11标准的普及和社区的推进,新的代码和项目都鼓励使用枚举类型的作用域访问枚举值(即使用::操作符),因为这提供了更好的类型安全性和清晰的命名空间划分,避免了不同枚举类型之间枚举值名称冲突的问题。

例如,在更新的protobuf版本中,如果有如下的.pr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gyqJulius_Caesar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值