首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动将c++11 auto关键字重写为派生类型

自动将c++11 auto关键字重写为派生类型
EN

Stack Overflow用户
提问于 2012-02-29 18:18:59
回答 3查看 738关注 0票数 6

也许是一个奇怪的问题,但是有没有软件可以在给定一堆c++11代码的情况下,派生出所有类型的自动类型变量,并用这些派生类型重写代码?也用于初始化器列表吗?

理由是,我们希望提供代码的向后兼容版本(非C++11),主要是为了与osx的可移植性。自动键入和初始化器列表是我们最常用的功能,因为它们使代码更具可读性,但手动删除它们是行不通的。因为这实际上是编译器对自动类型变量所做的事情,所以它看起来不太牵强?

EN

回答 3

Stack Overflow用户

发布于 2012-02-29 19:49:26

查看BOOST_AUTO和/或BOOST_TYPEOF

  • http://www.boost.org/doc/libs/1_48_0/doc/html/typeof/refe.html
  • http://www.boost.org/doc/libs/1_48_0/doc/html/typeof/refe.html#typeof.typo

你可以用

代码语言:javascript
复制
 auto x = foo();

使用

代码语言:javascript
复制
 BOOS_AUTO(x, foo());

如果你想“管理”一个decltype,你必须求助于BOOST_TYPEOF。请注意,这两个宏都有一些变体,您需要详细了解这些变体

票数 3
EN

Stack Overflow用户

发布于 2012-02-29 18:33:20

如果可以使用Boost,那么可以考虑使用boost::typeof。它不会做auto所做的事情,但在大多数情况下,它可以通过带有捕获的正则表达式搜索自动替换。

票数 2
EN

Stack Overflow用户

发布于 2012-06-28 23:08:04

听起来像是Eclipse CDT的重构插件的一个特性(实际上我在一段时间之前就向我的学生提出了这样的建议)。也许下个学期我可以找到一个团队来创造这样的东西。然而,Eclipse CDT的信息可能不足以总是确定正确的内容。

对于一些初始化器列表,例如那些填充向量的列表,boost::assign可能是一个替代品。我们的Mockator模拟对象基础设施将这些用于C++03,而不是C++11中的初始化器列表。

您不应该害怕Boost库,至少不应该害怕那些仅用于头文件的库。那些有单独的库部分的库可能会对正确设置造成一些麻烦(构建情况最近得到了改善)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9497264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档