将新的C ++翻译成旧的C ++

时间:2014-10-25 16:34:20

标签: c++ c++11 c++14 c++03 code-translation

C ++ 11和C ++ 14引入了许多新功能,使程序员和#C;生活更轻松。但是,在各种环境(例如CUDA)中,对最现代C ++功能的支持可能很弱或不存在。

其中许多功能(例如autodecltypeconstexpr,可变参数模板)不会给代码生成带来任何挑战,实际上只需要理解构造的解析器。原则上,除非使用诚实的新功能(例如thread_local),否则可能有一个工具可以使用C ++ 14代码并将其转换为可以使用只能理解C ++ 03语言的东西构建的代码

这样的工具是否存在? (或者我的假设是否偏离基础?)

1 个答案:

答案 0 :(得分:1)

AFAIK没有这样的工具。一些C ++编译器(原始的Cfront,也许是Comeau C ++)生成了C代码。

您可以自定义GCC(例如使用MELT)将内部Gimple表示转换为C ++的一小部分。这是很多工作(并且发出的C ++不会是可移植的)。

也许你应该考虑OpenACC