1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-omr

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
SupportedC++Features.md 5.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 01:31 668fed1

Поддерживаемые функции C++

Минимальная поддержка компилятора

ОС Архитектура Компилятор сборки Версия
Linux x86 g++ 4.8
Linux s390x g++ 4.8
Linux ppc64le XLC 12.1
Linux ppc64le g++ 4.8
AIX ppc64 XLC 12.1
z/OS s390x XLC v2r2
Windows x86-64 MSVC 2010 (версия 10)
  • Примечание: переход на gcc 7.3
  • Примечание: переход на msvc 2017

Внешние ресурсы

  • Таблица поддержки компиляторов CppReference

Использование стандартной библиотеки C++

— Стандартная библиотека C++ не полностью реализована в XLC. — GC запрещает связывание со стандартной библиотекой C++. Разрешены утилиты только для заголовков, но они, вероятно, недоступны. — Компилятор активно использует стандартную библиотеку C++, и статически связывает stdlib везде, где это возможно. — Всюду используется стандартная библиотека C. По возможности, предпочитайте использовать порт и библиотеки потоков OMR.

Исключения в OMR

— Для нормальной работы стандартной библиотеке C++ требуются исключения. — Не используйте типы RAII или стандартные контейнеры при отключённых исключениях. — В компиляторе и JitBuilder исключения включены. — Во всех остальных компонентах, включая порт, поток и GC, исключения отключены. — MSVC не позволяет использовать спецификаторы исключений в коде (например, throw(), noexcept), когда исключения отключены.

Поддерживаемые функции C++11

OMR написан на предстандартном диалекте C++11. Поддерживаемые языковые и библиотечные функции определяются минимальными версиями компиляторов, которые мы поддерживаем.

  • Строго типизированные / ограниченные перечисления: enum class
  • Ссылки на rvalue и семантика перемещения: template <typename T> T Fn(T&& t); (V2.0 — MSVC 2010)
  • Статические утверждения: static_assert
  • Автотипированные переменные: auto i = 1; (V1.0 — MSVC 2010)
  • Возвращаемые типы функций: auto f() -> int
  • Объявленный тип выражения: decltype(expr) (V1.0 — MSVC 2010)
  • Правые угловые скобки: template <typename T = std::vector<int>>
  • Делегирующие конструкторы: MyStruct() : MyStruct(NULL) {}
  • Внешние шаблоны
  • Вариативные макросы: #define m(p, ...), __VA_ARGS__
  • Макрос __func__
  • long long
  • Лямбда-выражения и замыкания: [](int i) -> int { return i + 1; }
  • Общие атрибуты: [[attribute]]
  • Постоянная нулевого указателя: nullptr
  • Поддержка выравнивания: alignas, alignof
  • Явные операторы преобразования

Неподдерживаемые функции C++11

СФИНАЕ (MSVC 2010)

  • Обобщённые константные выражения: constexpr (MSVC 2010).
  • Списки инициализаторов: std::vector<int> v = { 1, 2, 3 }; (MSVC 2010).
  • Типы и псевдонимы шаблонов: using MyAlias = MyType; (MSVC 2010).
  • Вариативные шаблоны: template <class... Ts>, sizeof... (MSVC 2010).
  • Функции с заданными по умолчанию и удалёнными значениями (MSVC 2010, XLC 12.1).
  • Циклы на основе диапазона: for (auto& x : container) { ... } (MSVC 2010).
  • Спецификатор исключений, не создающих исключений: noexcept (MSVC 2010).
  • Встраиваемые пространства имён: inline namespace inner {} (MSVC 2010).
  • Наследование конструкторов (MSVC 2010).
  • Предварительные объявления для перечислений (MSVC 2010).
  • Расширяемые литералы: 12_km (MSVC 2010).
  • Локальное хранилище потока.
  • Стандартные типы компоновки: is_standard_layout<T>::value.
  • Расширенные объявления друзей.
  • Неограниченные объединения (MSVC 2010).
  • Литералы строк в формате Unicode.
  • Расширенные целочисленные типы: <cstdint> (используйте <stdint.h> вместо) (XLC).
  • Сырые строковые литералы.
  • Литералы универсальных имён символов.
  • Новые типы символов: char16_t, char32_t (MSVC 2010).
  • Расширенный оператор sizeof (оператор sizeof для вложенных структур) (XLC 12.1).
  • Квалификаторы ссылок для функций-членов: int my_member() &&; (MSVC 2010).

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-omr.git
git@api.gitlife.ru:oschina-mirror/mirrors-omr.git
oschina-mirror
mirrors-omr
mirrors-omr
master