<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">

<channel>

<title>Блог ни о чём, заметки с тегом: C++</title>
<link>http://gladilov.org.ru/blog/tags/cpp/</link>
<description></description>
<generator>E2 (v3249; Aegea)</generator>

<item>
<title>Поздравляю!</title>
<guid isPermaLink="false">166</guid>
<link>http://gladilov.org.ru/blog/all/congratulations/</link>
<comments>http://gladilov.org.ru/blog/all/congratulations/</comments>
<description>&lt;pre class="e2-text-code"&gt;&lt;pre class="e2-text-code"&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

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 &amp;lt; 4; i++){
                c = y % 0xa;
                mdata[0xd - i] = 0x30 + c;
                y -= c;
                y /= 0xa;
        }
        for (i = 0; i &amp;lt; 21; i++) putchar(mdata[i]);
        return 0;
}&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;pre class="e2-text-code"&gt;&lt;pre class="e2-text-code"&gt;&lt;code&gt;איך אַרומנעמען און גראַטולירן איר אַלע. אַזוי פילע יאָרן צעלאָזן אונדזער נערוועס צו יעדער אנדערער, לאָזן אונדז פאָרזעצן דעם שפּאַס טעטיקייט. גוט גליק צו איר אַלע און געזונט.&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
&lt;pre class="e2-text-code"&gt;&lt;pre class="e2-text-code"&gt;&lt;code&gt;新年快乐！万事如意！&lt;/code&gt;&lt;/pre&gt;&lt;/pre&gt;
</description>
<pubDate>Mon, 01 Jan 2018 00:27:30 +0300</pubDate>
</item>

<item>
<title>Утверждён стандарт C++17</title>
<guid isPermaLink="false">98</guid>
<link>http://gladilov.org.ru/blog/all/c-plus-plus-17/</link>
<comments>http://gladilov.org.ru/blog/all/c-plus-plus-17/</comments>
<description>&lt;p&gt;Комитет ISO по стандартизации языка C++ единогласно &lt;a href="https://herbsutter.com/2017/09/06/c17-is-formally-approved/"&gt;утвердил&lt;/a&gt; спецификацию C++1z в качестве международного стандарта «C++17». Представленные в спецификации возможности уже полностью поддерживаются в компиляторах GCC и Clang, а также частично реализованы в Intel C++ и Visual C++. Поддерживающие C++17 стандартные библиотеки реализованы в рамках проекта Boost.&lt;/p&gt;
&lt;p&gt;&lt;b class="spoiler-controller pop-up_camper_08_09_17"&gt;Показать&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;section class="spoiler pop-up_camper_08_09_17"&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;В следующие два месяца утверждённая спецификация будет находиться на стадии подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток. В начале ноября результирующий вариант документа будет направлен в ISO для публикации под формальным именем ISO/IEC 14882:2017. Тем временем, комитет уже начал работу над следующим стандартом C++20 (C++2a) и рассмотрел на последнем совещании возможные новшества.&lt;/p&gt;
&lt;p&gt;Основные особенности C++17:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Возможность инициализации переменных внутри выражений if и switch;&lt;/li&gt;
&lt;li&gt;Возможность использования кодировки UTF-8 в символьных литералах;&lt;/li&gt;
&lt;li&gt;Шестнадцатеричные литералы с плавающей запятой;&lt;/li&gt;
&lt;li&gt;Указание текстового сообщения в static_assert теперь опционально;&lt;/li&gt;
&lt;li&gt;Удалена поддержка триграфов;&lt;/li&gt;
&lt;li&gt;Возможность указания typename (как альтернативы классам) в параметрах вложенного шаблона;&lt;/li&gt;
&lt;li&gt;Новые правила вывода типа «auto» из списка инициализации (braced-init-list);&lt;/li&gt;
&lt;li&gt;Возможность упрощённого определения вложенных параметров пространств имён: «namespace X::Y {...}» вместо «namespace X { namespace Y {...}}»;&lt;/li&gt;
&lt;li&gt;Возможность указания атрибутов для пространств имён и перечислений;&lt;/li&gt;
&lt;li&gt;Новые стандартные атрибуты &amp;#91;&amp;#91;fallthrough&amp;#93;&amp;#93;, &amp;#91;&amp;#91;maybe_unused&amp;#93;&amp;#93; и &amp;#91;&amp;#91;nodiscard&amp;#93;&amp;#93;;&lt;/li&gt;
&lt;li&gt;Проверка на неизменность (константность) для всех нетипизированных аргументов шаблонов;&lt;/li&gt;
&lt;li&gt;Сворачивание выражений для вариативных шаблонов;&lt;/li&gt;
&lt;li&gt;Раскрытие выражений «if» на стадии компиляции, если заданное внутри условие является константой;&lt;/li&gt;
&lt;li&gt;Структурированные привязки, например, «auto [a, b] = getTwoReturnValues()»;&lt;/li&gt;
&lt;li&gt;Автоматическое определение типов конструктора шаблонов (например, теперь можно указывать std::pair(5.0, false), явно не задавая типы «double, bool»);&lt;/li&gt;
&lt;li&gt;Inline-переменные, которые можно определять в заголовочных файлах;&lt;/li&gt;
&lt;li&gt;Добавлена библиотека для работы с ФС, основанная на boost::filesystem;&lt;/li&gt;
&lt;li&gt;Из библиотеки TS I перенесены std::string_view, std::optional и std::any;&lt;/li&gt;
&lt;li&gt;Добавлен std::uncaught_exceptions в качестве замены std::uncaught_exception;&lt;/li&gt;
&lt;li&gt;Новые функции вставки try_emplace и insert_or_assign для std::map и std::unordered_map;&lt;/li&gt;
&lt;li&gt;Унифицирован доступ к контейнерам std::size, std::empty и std::data;&lt;/li&gt;
&lt;li&gt;Определены непрерывные итераторы (contiguous iterators);&lt;/li&gt;
&lt;li&gt;Удалены устаревшие типы и функции, в том числе std::auto_ptr и std::random_shuffle;&lt;/li&gt;
&lt;li&gt;Представлены параллельно выполняемые варианты алгоритмов STL;&lt;/li&gt;
&lt;li&gt;Добавлены дополнительные математические функции, включая эллиптические интегралы и функции Бесселя;&lt;/li&gt;
&lt;li&gt;Представлены std::variant и std::byte;&lt;/li&gt;
&lt;li&gt;Новые свойства логического оператора: std::conjunction, std::disjunction и std::negation.&lt;/section&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
<pubDate>Fri, 08 Sep 2017 00:59:32 +0300</pubDate>
</item>


</channel>
</rss>