google-breakpad在C++ 11下编译错误修改
博客专区 > magicm 的博客 > 博客详情
google-breakpad在C++ 11下编译错误修改
magicm 发表于1年前
google-breakpad在C++ 11下编译错误修改
  • 发表于 1年前
  • 阅读 13
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

摘要: google-breakpad在C++ 11下编译错误修改

我只用到了exception_handler模块,暂时还未用到Server模块,因为用到了C++ 11的一些特性,而google-breadpad还没有C++11版本,所以做了一些修改,集中在类型定义处

1.

typedef typeof(((struct user*) 0)->u_debugreg[0]) debugreg_t;

修改为

#if __cplusplus > 199711L
typedef std::remove_reference<decltype(((struct user*) 0)->u_debugreg[0])>::type debugreg_t;
#else
typedef typeof(((struct user*) 0)->u_debugreg[0]) debugreg_t;
#endif

 

2.

typedef typeof(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;

修改为

#if __cplusplus > 199711L
typedef decltype(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;
#else
typedef typeof(((elf_aux_entry*) 0)->a_un.a_val) elf_aux_val_t;
#endif

 

因C++11中用了decltype来声明类型,所以做了兼容

共有 人打赏支持
粉丝 0
博文 8
码字总数 669
×
magicm
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: