Языковые новшества C++17. Часть 1. Свёртка и выведение

Процесс добавления и корректировки функционала, что должен составить C++17 наконец завершён, а посему можно приступать к его обзору. Т.к. нововведений, которые касаются непосредственно языка, в C++17 не так уж и много, а сами нововведения не слишком значительны, я решил объединить их все в одной статье. Решить то я решил, а потом начал писать. В результате, в этой статье описаны всего две новых функциональности: выражение свёртки и выведение шаблонных параметров класса. [Ещё]

Обзор книги Modern C++ Programming with Test-Driven Development

Книга написана в 2013 году Джефом Лангром (Jeff Langr), человеком, о котором я раньше никогда не слышал (позже тоже). Сейчас мне трудно сказать, что побудило меня обратить внимание на эту книгу — вероятнее всего, я просто случайно наткнулся на неё на Amazon, когда покупал что-то другое. [Ещё]

А есть ли функция?

В прошлой статье мы рассмотрели, что такое SFINAE и как оно работает, а в настоящей статье мы воспользуемся ранее полученными знаниями. Хотя она и не конкретно по SFINAE, скорее о метапрограммировании в общем. Здесь речь пойдёт о всего одной задаче, которая довольно успешно решается в C++: проверка ... [Ещё]

SFINAE. Как много в этом слове

Одной из наиболее сложных для понимания функциональностей в C++, по праву считаются шаблоны. Нет, не их простейшее применение — здесь, как правило, у людей не возникает больших проблем. Проблемы возникают тогда, когда с использованием шаблонов начинают писать код, который порождает другой код, т.е. писать код на языке шаблонов — это называется метапрограммирование. Многие люди, увидев подобный код, впадают в состояние транса — тут ещё хуже чем с указателями, если указатели не все понимают, то с шаблонами дело обстоит ещё хуже. [Ещё]

Вся правда об указателях. Часть 2: Памятная

В первой части мы разобрали основы указателей, определили, что есть указатель и как с ним работать. В настоящей статье мы углубимся в использование указателей, а точнее в то, на что они указывают. Для понимания материала этой статьи важно понимание работы указателей, которая описана в статье предыдущей, поэтому, если вы не читали первой части, и у вас есть проблемы с пониманием того, чем является указатель, или присутствует непонимание арифметики указателей, тогда я рекомендую первую часть к прочтению, до того как приступать к настоящей статье. Хотя данную статью тоже можно пометить как материал для новичков, я всё же полагаю, что и люди с опытом(хотя и небольшим) смогут вынести отсюда что-то для себя. [Ещё]

Вся правда об указателях. Часть 1: Вводная

С самого начала моей карьеры, как программиста, я постоянно встречаю людей(лично или в сети), которые при слове «указатели» впадают в состояние уныния, или наоборот, крайнего возбуждения, находясь в котором, они начинают бранить C++ и указатели на чём свет стоит. И это можно встретить как у начинающих программистов, так и у тех, кто уже довольно давно и долго программирует на языках типа Java и C#. Вообще, у всех, кто «ненавидит» C++(и C), на мой взгляд, есть всегда 2 довода: шаблоны и указатели, исключая шаблоны из уравнения, мы остаёмся с этим «страшными» указателями... [Ещё]

Добро пожаловать в параллельный мир. Часть 5: Граница на замке

Настоящая статья является прямым продолжением предыдущей, поэтому, не растекаясь мыслью по древу, предлагаю сразу же перейти к тому, на чём мы остановились в четвёртой части. Если вы не читали предыдущей части, то я всячески рекомендую её прочесть. В процессе написания данной статья я подразумевал, что читатель уже знает всё то, что было написано в предыдущей, кроме того, в этой статье будут неоднократные отсылки к статье предыдущей. [Ещё]

Обзор книги Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14

Книга была выпущена под занавес 2014 года, аккурат после принятия нового стандарта C++. Она написана Скоттом Майерсом(Scott Meyers) — автором, которого любой уважающий себя программист C++ должен знать в лицо. Три его предыдущие книги встречаются в любом списке литературы, рекомендуемой к прочтению по C++. Конечно, его книги не предназначены для новичков, а, скорее, являются неким вариантом продолжения изучения тонкостей C++, за пределами учебников по языку. Книги Скотта Майерса это некий экстракт опыта многих программистов, который он переводит в текст и представляет на суд читателя. До сих пор он не давал промашек — его книги были великолепны. [Ещё]

Добро пожаловать в параллельный мир. Часть 4: Порядки и отношения

Не прошло и 3-х лет с последней статьи в цикле, как я решился на написание обещанной четвёртой. Все мы знаем, что обещанного ждут три года, поэтому я, безусловно, выдержал марку. В настоящей статье речь пойдёт об атомарных объектах и операциях над ними. Какой-то материал будет частично повторять уже сказанное в 3-й части, но это не потому, что мне писать не о чем, а потому, что эти важные сведения должны, по моему мнению, быть сведены в одном месте. Более того, я надеюсь, что в этот раз я смогу донести все моменты более понятно, чем сделал это 3 года назад. [Ещё]

Обзор книги The C++ Standard Library

Книга написана в 2012 году Николаем Джосаттисом(Nicolai M. Josuttis). Это уже второе издание великолепной книги по стандартной библиотеке C++. При этом, на мой взгляд, книга не заслуженно обходится вниманием и многие списки книг по C++, которые рекомендуются к прочтению, не содержат её. Так, эти спи... [Ещё]