Удобное место, чтобы написать свою статью или просто почитать


Люди, которые создают C++

Групп WG21, комитет по Стандартизации C++ (лишь часть участников)Что Вы знаете о тех людях, которые входят в   коммитет по Стандартизации C++ (группа WG21) ?

Уверен Вы сможете перечислить несколько известных людей, в основном авторов книг по C++, ибо многие из Вас эти книги читали.

Это конечно Бьёрн Страуструп (Bjarne Stroustrup) - создатель языка C++, выдающийся сотрудник  AT&T, автор книг и множества статей по программированию.

Это и Герб Саттер (Herb Sutter) - сотрудник Microsoft, который долгие годы был главным организатором комитета. Он популярен своими "задачками" на C++, которые публиковал в журналах, а затем и в своих книгах.

Тут Вы вспомните Скотта Мейерса (Scott Meyers) и его замечательные книги по программированию. Но увы! Скотт не является членом комитета по стандартизации C++. Однако, он вносит огромный вклад в развитие языка. Разъезжая по миру, он рассказывает людям, насколько C++ интересный и мощный язык. Не так давно он заезжал и в Россию  (вот линк на его лекцию).

В данной статей я хотел бы рассказать немного о тех, кто создает  язык C++ и дать подборку ссылок на блоги всех этих замечательных людей. Даже если Вы не знаете английский, Вам хотя бы стоит посмотреть на код, ведь язык на котором он написан Вам хорошо знаком.

Читать полностью | | | | 2516



Проблемы в std::map, которые хотят решить в C++17

Следующей мажорной версией стандарта языка C++ должна стать версия "C++17"  (также известная как C++1z). А документ "C++14" станет лишь небольшым расширением текущего стандарта, и будет в основном содержать исправления ошибок и небольшие улучшения C++11. Скорее всего выход новой мажорной версии стандарта не состоится в 2017 году, однако, работа над ним уже идет в полную силу. 

В переписке членов Комитета и их рабочих документах можно найти массу интересного по C++.  Например, в документе под номером N3873 автора Thomas Köppe, который называется: "Улучшение операций вставки для контейнеров std::map и std::unordered_map", рассказывается о том, что текущий интерфейс названных контейнеров имеет несколько неопределенное поведение в части вставки новых элементов с использованием методов insert и emplace. Рассмотрим подробнее, о чем идет речь в документе N3873.

Читать полностью | | | | 6174



Контейнер ссылок в C++ или зачем нужен std::reference_wrapper ?

Прежде чем, тронуть std::reference_wrapper давайте рассмотрим несколько задач, некоторые из которых могут показаться странными на первый взгляд. 

Задача первая

Ссылки в C++ не могут выступать в качестве типа элементов массива или контейнера STL:

std::vector< std::string& > cont; // Ошибка на этапе компиляции

Конечно можно использовать указатели в качестве элементов контейнера, однако в этом случае оказывается задействован синтаксис указателей. Поэтому, иногда очень хочется организовать контейнер, хранящий ссылки. Как этого можно добиться? Читаем далее.

Задача вторая

Инициализация ссылки происходит при её объявлении. После объявления ссылки её невозможно привязать к другой переменной. Однако можно легко создать похожее по семантике поведение и сделать что-то вроде "повторной инициализации" ссылки.

Задача третья

Многие алгоритмы в STL могут принимать функторы (функциональные объекты) в качестве своих аргументов. Передача аргументов алгоритму, в том числе и функторов, происходит по значению. Это затрудняет использование внутреннего состояния функторов. К примеру: как подсчитать количество операций сравнения в алгоритме std::sort?

Решим все эти задачи.

Читать полностью | | | | 7254