C ++ 11 и C ++ 14 предоставляют множество новых функций, облегчающих жизнь программистам. Однако в различных средах (например, CUDA) поддержка самых современных функций C ++ может быть слабой или отсутствовать.
Многие из этих функций (например, auto
, decltype
, constexpr
Различные шаблоны) не создают никаких проблем при генерации кода, и на самом деле требуется только синтаксический анализатор, который понимает конструкции. В принципе, если только честно новый функционал (например, thread_local
), может существовать инструмент, который берет код C ++ 14 и преобразует его в нечто, что может быть построено из чего-то, что понимает только язык C ++ 03.
Существует ли такой инструмент? (или мои предположения далеко от базы?)
AFAIK такого инструмента не существует. Некоторые компиляторы C ++ (оригинал Cfront, и, возможно Комео C ++) сгенерированный C-код
Вы можете настроить GCC (например, используя ПЛАВИТЬСЯ) перевести внутреннее представление Gimple в небольшое подмножество C ++. Это большая работа (и испускаемый C ++ не будет переносимым).
Может быть, вы должны рассмотреть OpenACC