Официальные подмножества языка C ++ - PullRequest
12 голосов
/ 19 июня 2010

Я в основном использую C ++ для научных вычислений, и в последнее время я ограничиваю себя очень похожим на C подмножеством функций C ++; а именно, отсутствие классов / наследования, кроме сложных и STL, шаблоны, используемые только для подстановок типа поиска / замены, и некоторые другие вещи, которые я не могу выразить словами из головы. Мне интересно, есть ли какие-либо официальные или хорошо документированные подмножества языка C ++, на которые я мог бы взглянуть для справки (а также для обоснования), когда я собираюсь выбирать и выбирать, какие функции использовать.

Ответы [ 6 ]

5 голосов
/ 09 июля 2011

Google публикует свое внутреннее руководство по стилю C ++, которое часто называют таким подмножеством: https://google.github.io/styleguide/cppguide.html.Бен Маурер, чья компания reCAPTCHA была приобретена Google, описывает это следующим образом в этом посте на Quora :

Вы можете в основном думать о подмножестве Google C ++ как C плюс немногосахар:

Возможность добавлять методы к структурам

Базовое одиночное наследование.

Классы коллекций и строк

Управление ресурсами на основе области.

Они также публикуют инструмент lint, cpplint.py.

5 голосов
/ 19 июня 2010

Существует Embedded C ++ .Это звучит в основном похоже на то, что вы ищете.

4 голосов
/ 20 июня 2010

Не так давно я слушал этот подкаст SE-Radio - Эпизод 152: MISRA с Йоханом Беземом , который представляет MISRA, стандартные рекомендации для C и C ++ для обеспечения лучшего качества, попробуйте посмотреть на него.

2 голосов
/ 19 июня 2010

Разработчики GCC собираются разрешить некоторые функции C ++.Я пока не знаю ни одного официального руководства, но я почти уверен, что они определят некоторые.Взгляните на первоначальный отчет в списке рассылки.

0 голосов
/ 07 октября 2013

OpenCL использует C для написания ядер, но недавно они добавили (или скоро добавят) привязки C ++ и, возможно, Java.В OpenCL пропущены некоторые возможности потери производительности в C. Исключены такие вещи, как указатели функций и рекурсия.Умные указатели и полиморфизм также создают накладные расходы.

Ограничения на языки программирования C: SIMD

Немного не по теме: Вот хорошее обсуждение, сравнивающее OpenCL с CUDA с использованием C. OpenCL или CUDA Какой путь?

0 голосов
/ 19 июня 2010

Ну, последние разработки (TR1, C ++ 0x) в C ++ сделали его очень общим, позволяя вам выполнять императивное, ООП или даже (ограниченное) функциональное программирование на C ++. Такие библиотеки, как Boost, также позволяют вам выполнять мощное декларативное метапрограммирование на основе шаблонов.

Я думаю, что Boost - это первое, что нужно попробовать в C ++. Это всеобъемлющая библиотека, которая также включает в себя несколько модулей, которые позволяют программировать в функциональном стиле (Boost.Functional) или выполнять декларативное метапрограммирование во время компиляции (Boost MPL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...