Однажды утром, когда мне было 25, я проснулся с сильным желанием самореализации. Спустя несколько месяцев раздумий было принято решение кардинально изменить свою жизнь. Потом ещё несколько месяцев заняло осознание того, что же во мне вызывает неподдельный интерес. За всё это время, в моей голове рождались только айтишные проекты и идеи. Для реализации любой из них нужно много денег или быть специалистом в своём деле. За неимением первого, я решил для начала научиться программировать. Так начался мой путь из гуманитария в программисты. Первые полгода всё свободное время я уделял книгам, курсам на Stepik и огромному количеству роликов на Ютуб. Это был разбросанный в знаниях и очень хаотичный период времени. За те полгода я успел пройти...
Метапрограммирование обычно определяется как создание программ, которые генерируют другие программы. Сейчас для нас метапрограммирование это удобный механизм шаблонов, который предоставляет широкие возможности для вычислений во время компиляции.
При разработке программ часто оказывается, что разным программным приложениям требуются одни и те же объекты, их свойства методы, процедуры и функции. Например, почти все программы выводят информацию на экран и пользуются стандартными объектами интерфейса Windows (окна, кнопки, меню…) Было бы в высшей степени неразумно запихивать код отрисовки каждого такого элемента во все программы.
Процессом (process) называется экземпляр программы, загруженной в память. Этот экземпляр может создавать нити (thread), которые представляют собой последовательность инструкций на выполнение. Важно понимать, что выполняются не процессы, а именно нити.
Исключительная ситуация, или исключение — это возникновение непредвиденного или аварийного события, которое может порождаться некорректным использованием аппаратуры. Например, это деление на ноль или обращение по несуществующему адресу памяти. Обычно эти события приводят к завершению программы с системным сообщением об ошибке. C++ дает программисту возможность восстанавливать программу и продолжать ее выполнение.
Конструктор string (string && str) noexcept подобен конструктору копирования в том смысле, что новый объект string является копией объекта str.