gladilov.org.ru gladilov.org.ua

2 заметки с тегом

C++

Поздравляю!

#include <stdio.h>

int main(){
        char mdata[] = {0x48, 0x61, 0x70, 0x70, 0x79, 0x20, 0x6e, 0x65, 0x77,
                0x20, 0, 0, 0, 0, 0x20, 0x79, 0x65, 0x61, 0x72, 0x21, 0xa};
        int i, y, c;
        y = 2 * (10 * 10 * 10 + 3 * 3);
        for (i = 0; i < 4; i++){
                c = y % 0xa;
                mdata[0xd - i] = 0x30 + c;
                y -= c;
                y /= 0xa;
        }
        for (i = 0; i < 21; i++) putchar(mdata[i]);
        return 0;
}
איך אַרומנעמען און גראַטולירן איר אַלע. אַזוי פילע יאָרן צעלאָזן אונדזער נערוועס צו יעדער אנדערער, לאָזן אונדז פאָרזעצן דעם שפּאַס טעטיקייט. גוט גליק צו איר אַלע און געזונט.
新年快乐!万事如意!
2018   C++   праздник   софт   юмор

Утверждён стандарт C++17

Комитет ISO по стандартизации языка C++ единогласно утвердил спецификацию C++1z в качестве международного стандарта «C++17». Представленные в спецификации возможности уже полностью поддерживаются в компиляторах GCC и Clang, а также частично реализованы в Intel C++ и Visual C++. Поддерживающие C++17 стандартные библиотеки реализованы в рамках проекта Boost.

Показать

В следующие два месяца утверждённая спецификация будет находиться на стадии подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток. В начале ноября результирующий вариант документа будет направлен в ISO для публикации под формальным именем ISO/IEC 14882:2017. Тем временем, комитет уже начал работу над следующим стандартом C++20 (C++2a) и рассмотрел на последнем совещании возможные новшества.

Основные особенности C++17:

  • Возможность инициализации переменных внутри выражений if и switch;
  • Возможность использования кодировки UTF-8 в символьных литералах;
  • Шестнадцатеричные литералы с плавающей запятой;
  • Указание текстового сообщения в static_assert теперь опционально;
  • Удалена поддержка триграфов;
  • Возможность указания typename (как альтернативы классам) в параметрах вложенного шаблона;
  • Новые правила вывода типа «auto» из списка инициализации (braced-init-list);
  • Возможность упрощённого определения вложенных параметров пространств имён: «namespace X::Y {...}» вместо «namespace X { namespace Y {...}}»;
  • Возможность указания атрибутов для пространств имён и перечислений;
  • Новые стандартные атрибуты [[fallthrough]], [[maybe_unused]] и [[nodiscard]];
  • Проверка на неизменность (константность) для всех нетипизированных аргументов шаблонов;
  • Сворачивание выражений для вариативных шаблонов;
  • Раскрытие выражений «if» на стадии компиляции, если заданное внутри условие является константой;
  • Структурированные привязки, например, «auto [a, b] = getTwoReturnValues()»;
  • Автоматическое определение типов конструктора шаблонов (например, теперь можно указывать std::pair(5.0, false), явно не задавая типы «double, bool»);
  • Inline-переменные, которые можно определять в заголовочных файлах;
  • Добавлена библиотека для работы с ФС, основанная на boost::filesystem;
  • Из библиотеки TS I перенесены std::string_view, std::optional и std::any;
  • Добавлен std::uncaught_exceptions в качестве замены std::uncaught_exception;
  • Новые функции вставки try_emplace и insert_or_assign для std::map и std::unordered_map;
  • Унифицирован доступ к контейнерам std::size, std::empty и std::data;
  • Определены непрерывные итераторы (contiguous iterators);
  • Удалены устаревшие типы и функции, в том числе std::auto_ptr и std::random_shuffle;
  • Представлены параллельно выполняемые варианты алгоритмов STL;
  • Добавлены дополнительные математические функции, включая эллиптические интегралы и функции Бесселя;
  • Представлены std::variant и std::byte;
  • Новые свойства логического оператора: std::conjunction, std::disjunction и std::negation.
Наверх