В основном я использую C++ для научных вычислений, и в последнее время я ограничиваю себя очень C-подобным набором функций C++; а именно, нет классов/наследования, кроме сложных и STL, шаблоны, используемые только для поиска/замены видов подстановок, и несколько других вещей, которые я не могу выразить словами сверху. Мне интересно, есть ли какие-либо официальные или хорошо документированные подмножества языка C++, на которые я мог бы ссылаться (как и на обоснование), когда я собираюсь выбирать и выбирать, какие функции использовать.Официальные подмножества языка C++
ответ
Embedded C++. Это звучит в основном похоже на то, что вы ищете.
Встроенный C++ никогда не попадал; после того, как вы сильно удалили язык, у него нет преимуществ перед C. –
@Mike, некоторые утверждают, что это никогда не делалось. –
Ну, последние разработки (TR1, C++ 0x) в C++ сделали его очень универсальным, что позволило вам выполнять обязательное, ООП или даже (ограниченное) функциональное программирование на C++. Библиотеки, такие как Boost, также позволяют делать метаданные с использованием метаданных с использованием метаданных.
Я думаю, что Boost - это первое, что нужно попробовать на C++. Это комплексная библиотека, которая также включает в себя несколько модулей, которые позволяют вам программировать в функциональном стиле (Boost.Functional) или делать декларативное метапрограммирование во время компиляции (Boost MPL).
Подмножества, а не надмножества. –
Ну, это зависит от того, что вы называете множеством - если только STL, то Boost - это суперсет. Но я имел в виду, что Boost.Functional и Boost.MPL являются подмножествами C++ в качестве языка. –
Я первоначально имел в виду подмножество, как в подмножестве самих языковых функций. У Boost, кажется, требуется очень полный набор возможностей C++. –
Разработчики GCC могут позволить некоторые возможности C++. Я пока не знаю каких-либо официальных рекомендаций, но я уверен, что они определит некоторые. Посмотрите на initial report в списке рассылки.
Незадолго до этого я слушал этот подкаст SE-Radio - Episode 152: MISRA with Johan Bezem, который вводит стандартные инструкции MISRA для C и C++ для обеспечения лучшего качества, попробуйте посмотреть на него.
Google публикует свое внутреннее руководство по стилю C++, которое часто называют таким подмножеством: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml. Бен Maurer, чья компания рекапчи была приобретена компанией Google, описывает его следующим образом in this post on Quora:
Вы можете в основном думать о подмножестве Google, C++ как C плюс немного сахара:
Возможность добавления методы для структур
Основное одиночное наследование.
Сбор и строковые классы
Область управления ресурсами на основе.
Они также издают инструмент пуха, cpplint.py.
OpenCL использует C для написания ядра, но в последнее время они добавили (или в скором времени добавить) C++ привязок и, возможно, Java. OpenCL не учитывает ряд функций, ограждающих производительность C. Исключены такие вещи, как указатели на функции и рекурсия. Умные указатели и полиморфизм также создают накладные расходы.
Ограничения на C: SIMD programming languages
Немного по теме: Вот хорошая дискуссия по сравнению с OpenCL CUDA с использованием C. OpenCL or CUDA Which way to go?
Моя точка зрения, что OpenCL ограничивает то, что вам разрешено использовать в C и C++. Многие функции удалены или не поддерживаются или предоставляют ограниченную поддержку. Тем не менее, эти подмножества этих языков по-прежнему весьма полезны и позволяют писать всевозможные симуляции и программное обеспечение для использования на GPGPU, DSP, FPGA и многоядерных процессорах. – Max
- 1. Официальные имена операторов/ключевые слова C++
- 2. Официальные весенние сокращения
- 3. Любые официальные зеркала rubygems.org?
- 4. Официальные названия Ruby
- 5. Facebook официальные значки
- 6. Реальные контекстные официальные планы
- 7. Каковы официальные FrameworkNames?
- 8. Официальные заявления Erlang/OTP
- 9. Минимум подмножества вектора (C++)
- 10. Последовательность подмножества C#
- 11. «Разбор» подмножества «компиляции»?
- 12. Каковы официальные зарезервированные символы XML?
- 13. Где можно скачать «официальные» моноприборы?
- 14. где находятся официальные форумы directx?
- 15. Официальные отличия T, T & T &&
- 16. Соответствие подмножества строк в C#
- 17. Java: Как реализовать подмножества подмножества?
- 18. Как Вала поддерживает макросы __function__ __file__ __line__ языка C?
- 19. C контроль языка рекурсия
- 20. Вопрос теории языка C#
- 21. c проблема языка
- 22. Многопроцессорность языка C execvp()
- 23. Расширение языка C#?
- 24. Изменение системного языка C#
- 25. C# Обновления языка
- 26. Расширения языка C++
- 27. Основы языка C 1
- 28. Изучение языка C++
- 29. Разделитель символов языка C++
- 30. Ошибка функции языка C
Что вы Обоснованием для определения подмножества C++? Почему бы просто не использовать функции, которые помогут вам, и оставить в покое те функции, которые этого не делают.Это потенциально большая работа для определения согласованного подмножества функций; какая прибыль? –
Не очень-то, мне было просто любопытно, действительно ли это было определено. Мне нравится держать вещи легко интерфейсными с C и Fortran, и я хотел, чтобы мнения других людей касались некоторых особенностей языка. –