background preloader

С++

Facebook Twitter

Введение в C++11: умные указатели. Продолжу доброю традицию и расскажу сегодня об умных указателях, также известных как Smart Pointers.

Введение в C++11: умные указатели

Умные указатели очень актуальны в мире C++ и новый стандарт не обошел их стороной. Smart pointer — это объект, работать с которым можно как с обычным указателем, но при этом, в отличии от последнего, он предоставляет некоторый дополнительный функционал (например, автоматическое освобождение закрепленной за указателем области памяти). Умные указатели призваны для борьбы с утечками памяти, которые сложно избежать в больших проектах. Они особенно удобны в местах, где возникают исключения, так как при последних происходит процесс раскрутки стека и уничтожаются локальные объекты. В случае обычного указателя — уничтожится переменная-указатель, при этом ресурс останется не освобожденным. В новом стандарте появились следующие умные указатели: unique_ptr, shared_ptr и weak_ptr. Unique_ptr Этот указатель пришел на смену старому и проблематичному auto_ptr.

Сделает элемент вектора невалидным. Learn C The Hard Way. Популярные вопросы на собеседовании по C++ и ответы на них. Здравствуйте!

Популярные вопросы на собеседовании по C++ и ответы на них

Те, кто занимается программированием рано или поздно сталкивается с необходимостью прохождения технического собеседования у потенциального работодателя. О том, что спрашивают на собеседовании у C++ программистов, а также об ответах на эти вопросы и пойдет речь в данном посте. Предисловие Небольшая вводная часть в виде вопрос-ответ, чтобы разъяснить некоторые моменты и постараться ответить на возможные вопросы по этому посту. Зачем все это? В общем хочется иметь список с самыми популярными вопросами по данной теме, и если, вдруг, понадобится освежить знания, чтобы не приходилось лезть в какие-то записки, запускать IDE или гуглить, а можно было открыть одно место и там все прочитать.

Profil d'utilisateur : Alena.

QT

Лекции по курсу «Языки программирования» 2014 · ФИИТ на Мехмате ЮФУ. C++0x/C++11 Support in GCC - GNU Project - Free Software Foundation (FSF) A Pragmatic Look at Exception Specifications. This article appeared in C/C++ Users Journal, 20(7), July 2002.

A Pragmatic Look at Exception Specifications

As we consider work now underway on the new C++ standard, C++0x, it’s a good time to take stock of what we’re doing with, and have learned from, our experience with the current C++98 standard. The vast majority of Standard C++’s features are good, and they get the lion’s share of the print because there’s not much point harping on the weaker features. Rather, the weaker and less useful features more often just get ignored and atrophy from disuse until many people forget they’re even there (not always a bad thing). That’s why you’ve seen relatively few articles about obscure features like valarray, bitset, locales, and the legal expression 5[a] — and the same is true, for reasons which we shall see in this column and the next, for exception specifications and export. PVS-Studio: статический анализатор кода для C/C++/C++11. PVS-Studio - статический анализатор, выявляющий ошибки в исходном коде приложений на языке C/C++/C++11.

PVS-Studio: статический анализатор кода для C/C++/C++11

Можно выделить следующие наборы правил, включенных в состав PVS-Studio: Подробнее с каждым из типов диагностики можно ознакомиться на соответствующих страницах. Используемая методология статического анализа кода имеет существенные преимущества над другими видами анализа, так как позволяет охватить весь программный код. Процедура проверки кода не может как-либо повредить сам код. Процесс анализа полностью контролируется человеком, и именно он принимает решения о необходимости его модификации. Посмотрите или скачайте презентацию про PVS-Studio. Интеграция с Microsoft Visual Studio и Embarcadero RAD Studio Инструмент PVS-Studio предназначен для разработчиков современных приложений и интегрируется в среду Visual Studio 2013, 2012, 2010, 2008, 2005 и Embarcadero RAD Studio XE5, XE4, XE3, XE2, XE, 2010, 2009.

Settings

Eclipse 4.2: первые шаги. 2 ПЕРЕДАЧА ДАННЫХ МЕЖДУ ПРОЦЕССАМИ. Программирование для Windows NT В среде операционной системы Microsoft Windows NT вам доступно такое удобное средство передачи данных между параллельно работающими процессами, как каналы типа Pipe.

2 ПЕРЕДАЧА ДАННЫХ МЕЖДУ ПРОЦЕССАМИ

Это средство позволяет организовать передачу данных между локальными процессами, а также между процессами, запущенными на различных рабочих станциях в сети. Каналы типа Pipe больше всего похожи на файлы, поэтому они достаточно просты в использовании. Через канал можно передавать данные только между двумя процессами. Один из процессов создает канал, другой открывает его. Именованные и анонимные каналы Существуют две разновидности каналов Pipe - именованные (Named Pipes) и анонимные (Anonymous Pipes). Как видно из названия, именованным каналам при создании присваивается имя, которое доступно для других процессов. Каналы. Канал - однонаправленное средство взаимодействия.

Каналы

Данные, записанные в канал со "стороны записи" читаются со "стороны чтения. " Каналы - последовательные устройства; данные всегда читаются в том же порядке, в котором были записаны. Как правило, канал используется для взаимодействия двух потоков в одном процессе или между родительскими и дочерними процессами. В оболочке, символ | создает канал. Например, эта команда оболочки запускает два дочерних процесса, один ls и один less : % ls | less Оболочка создает канал, соединяющий стандартный вывод процесса ls со стандартным вводом процесса less . Емкость канала ограничена. Исходники.RU - Информационный сервер для программистов: исходники со всего света.

Использование anonymous pipes для перехвата StdIn/StdOut дочернего процесса.

Исходники.RU - Информационный сервер для программистов: исходники со всего света.

Автор: Borland Developer Support Staff Перевод: Валерий Вотинцев Тема: О том, как создать дочерний процесс и передать управление его потоком ввода-вывода родительскому процессу за счет переадресации StdIn/StdOut. Введение: В настоящей статье объясняется, как запустить дочернее консольное приложение и переадресовать его стандартный ввод/вывод с использованием неименованных пайпов. Родительский и дочерний процессы - Wideserver.ru. Следующий логический шаг в нашем изучении вызова pipe — разрешить дочернему процессу быть другой программой, отличной от своего родителя, а не просто другим процессом, выполняющим ту же самую программу. Сделать это можно с помощью вызова exec. Единственная сложность заключается в том, что новому процессу, созданному exec, нужно знать, какой файловый дескриптор применять для доступа.

В предыдущем примере этой проблемы не возникло, потому что дочерний процесс обращался к своей копии данных file_pipes. После вызова exec возникает другая ситуация, поскольку старый процесс заменен новым дочерним процессом. Эту проблему можно обойти, если передать файловый дескриптор (который, в конце концов, просто число) как параметр программе, вновь созданной с помощью вызова exec. Для того чтобы посмотреть, как это работает, вам понадобятся две программы (упражнение 13.7). Упражнение 13.7. 1. Programming: Principles and Practice using C++ Cplusplus.com - The C++ Resources Network.