自动将c++11 auto关键字重写为派生类型
Automatically rewrite c++11 auto keyword into derived types
也许这是一个奇怪的问题,但有没有任何软件可以在给定一堆c++11代码的情况下,派生所有类型的自动类型变量,并用这些派生类型重写代码?也适用于初始值设定项列表?
理由是,我们希望提供一个向后兼容的代码版本(非C++11),主要用于osx的可移植性。自动键入和初始值设定项列表是我们使用最多的功能,因为它们使代码可读性更强,但手动删除它们是不可能的。事实上,这就是编译器对自动类型变量所做的,这似乎并不太牵强?
查看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
你可以替代
auto x = foo();
带有
BOOS_AUTO(x, foo());
如果你想"管理"一个decltype,你必须求助于BOOST_TYPEOF。请注意,这两个宏都有一些变体,您希望了解更多关于的信息
如果您可以使用Boost,那么您可以查看Boost::typeof。它不会像auto
那样做,但在大多数情况下,它可以通过带有捕获搜索的regex自动替换。
听起来像是EclipseCDT重构插件的一个特性(实际上我不久前就向我的学生提出了这样的建议)。可能是下学期我可以找到一个团队来创建这样的。然而,EclipseCDT的信息可能不足以始终确定正确的内容。
对于一些初始化器列表,例如填充向量的列表,boost::assign可以作为替换。我们的Mockator模拟对象基础结构将这些用于C++03,而不是C++11中的初始值设定项列表。
您不应该害怕Boost库,至少不要害怕那些只作为头的库。那些有单独的库部件的程序要正确设置可能会有点麻烦(构建情况最近有所改善)。
相关文章:
- 在 C++ 中用派生类型重写成员函数
- 派生类调用父类的方法,该方法调用重写的虚拟方法调用错误的方法
- 重写派生类中的二元运算符
- 具有派生参数的函数重写
- 我无法重写基类的方法,因为我的派生类是模板化的
- 派生类中的私有重写虚函数
- 哪个基类调用派生重写的方法?
- 不要重写派生类中的纯虚函数
- 重写派生类中的枚举值
- 重写派生类中的模板基方法?
- 是否可以在不重写派生类中记录虚拟成员?
- C++应该重写派生类中的复制构造函数吗
- 重写派生类中的C++模板函数
- 重写派生类上的虚拟函数,并且仍在调用基本功能
- 重写派生类中的成员字段
- C++ 重写<T> T 派生类的哈希
- 重写派生类中的某些重载,但不重写其他重载
- 继承时如何重写派生类中的函数
- 重写派生类中的受保护变量
- 重写派生类中的运算符 new/delete