也许是一个奇怪的问题,但是有没有软件可以在给定一堆c++11代码的情况下,派生出所有类型的自动类型变量,并用这些派生类型重写代码?也用于初始化器列表吗?
理由是,我们希望提供代码的向后兼容版本(非C++11),主要是为了与osx的可移植性。自动键入和初始化器列表是我们最常用的功能,因为它们使代码更具可读性,但手动删除它们是行不通的。因为这实际上是编译器对自动类型变量所做的事情,所以它看起来不太牵强?
发布于 2012-02-29 19:49:26
查看BOOST_AUTO和/或BOOST_TYPEOF
你可以用
auto x = foo();使用
BOOS_AUTO(x, foo());如果你想“管理”一个decltype,你必须求助于BOOST_TYPEOF。请注意,这两个宏都有一些变体,您需要详细了解这些变体
发布于 2012-02-29 18:33:20
如果可以使用Boost,那么可以考虑使用boost::typeof。它不会做auto所做的事情,但在大多数情况下,它可以通过带有捕获的正则表达式搜索自动替换。
发布于 2012-06-28 23:08:04
听起来像是Eclipse CDT的重构插件的一个特性(实际上我在一段时间之前就向我的学生提出了这样的建议)。也许下个学期我可以找到一个团队来创造这样的东西。然而,Eclipse CDT的信息可能不足以总是确定正确的内容。
对于一些初始化器列表,例如那些填充向量的列表,boost::assign可能是一个替代品。我们的Mockator模拟对象基础设施将这些用于C++03,而不是C++11中的初始化器列表。
您不应该害怕Boost库,至少不应该害怕那些仅用于头文件的库。那些有单独的库部分的库可能会对正确设置造成一些麻烦(构建情况最近得到了改善)。
https://stackoverflow.com/questions/9497264
复制相似问题