c ++ 11 — перевод нового C ++ в старое переполнение стека

C ++ 11 и C ++ 14 предоставляют множество новых функций, облегчающих жизнь программистам. Однако в различных средах (например, CUDA) поддержка самых современных функций C ++ может быть слабой или отсутствовать.

Многие из этих функций (например, auto, decltype, constexprРазличные шаблоны) не создают никаких проблем при генерации кода, и на самом деле требуется только синтаксический анализатор, который понимает конструкции. В принципе, если только честно новый функционал (например, thread_local), может существовать инструмент, который берет код C ++ 14 и преобразует его в нечто, что может быть построено из чего-то, что понимает только язык C ++ 03.

Существует ли такой инструмент? (или мои предположения далеко от базы?)

2

Решение

AFAIK такого инструмента не существует. Некоторые компиляторы C ++ (оригинал Cfront, и, возможно Комео C ++) сгенерированный C-код

Вы можете настроить GCC (например, используя ПЛАВИТЬСЯ) перевести внутреннее представление Gimple в небольшое подмножество C ++. Это большая работа (и испускаемый C ++ не будет переносимым).

Может быть, вы должны рассмотреть OpenACC

1

Другие решения