<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / C++ / Захабренные</title>
	<link>http://habrahabr.ru/rss/blog/cpp/</link>
	<description><![CDATA[Захабренные посты из блога «C++» на Хабрахабре]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Fri, 10 Feb 2012 14:30:10 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
		
	
		
	<item>		
		<title><![CDATA[C++ / [Из песочницы] Перевод статьи «Pimp my Pimpl», часть 2]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/137702/</guid>
		<link>http://habrahabr.ru/blogs/cpp/137702/</link>			
		<description><![CDATA[В первой части статьи, переведенной уважаемым <a href="http://habrahabr.ru/users/skb7/" class="user_link">skb7</a>, было рассмотрено идиому Pimpl (pointer to implementation, указатель на реализацию), ее назначение и преимущества. Во второй части будет рассмотрено проблемы, возникающие при использовании этой идиомы, а также предложены некоторые варианты их решения.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/137702/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 06 Feb 2012 13:13:19 GMT</pubDate>
		<author>UncleAli</author>
		<category>pimpl</category><category>c plus plus</category><category>qt</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Не зная брода, не лезь в воду. Часть вторая]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/137411/</guid>
		<link>http://habrahabr.ru/blogs/cpp/137411/</link>			
		<description><![CDATA[<img align="left" src="http://www.viva64.com/external-pictures/habr96/image0.png" alt="Ужасный printf"/><br/>
В этот раз я хочу поговорить о функции printf. Все наслышаны об уязвимостях в программах, и что функции наподобие printf объявлены вне закона. Но одно дело знать, что лучше не использовать эти функции. А совсем другое — понять почему. В этой статье я опишу две классических уязвимости программ, связанных с printf. Хакером после этого вы не станете, но, возможно, по-новому взгляните на свой код. Вдруг, вы реализуете аналогичные уязвимые функции, даже не подозревая об этом. <br/>
<br/>
<b>СТОП.</b> Подожди читатель, не проходи мимо. Я знаю, что ты увидел слово printf. И уверен, что автор статьи сейчас расскажет банальную историю о том, что функция не контролирует типы передаваемых аргументов. Нет! Статья будет не про это, а именно про уязвимости. Заходи почитать.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/137411/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 01 Feb 2012 10:25:03 GMT</pubDate>
		<author>Andrey2008</author>
		<category>си плюс плюс</category><category>си программирование</category><category>printf</category><category>c plus plus</category><category>c++</category><category>уязвимость</category><category>стек</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Не зная брода, не лезь в воду. Часть первая]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/137039/</guid>
		<link>http://habrahabr.ru/blogs/cpp/137039/</link>			
		<description><![CDATA[<img align="left" src="http://www.viva64.com/external-pictures/habr94/image1.jpg" alt="Не зная брода, не лезь в воду"/><br/>
Захотелось написать несколько небольших заметок о том, как программисты на Си/Си++ играют с огнем, не подозревая об этом. Первая заметка будет про попытки явно вызвать конструктор.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/137039/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Thu, 26 Jan 2012 08:22:18 GMT</pubDate>
		<author>Andrey2008</author>
		<category>си плюс плюс</category><category>c plus plus</category><category>ошибки в коде</category><category>ошибки программистов</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Я не знаю Си]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/136283/</guid>
		<link>http://habrahabr.ru/blogs/cpp/136283/</link>			
		<description><![CDATA[Цель этой статьи — заставить всех, особенно программистов на Си, сказать «я не знаю Си».<br/>
Хочется показать, что тёмные углы в Си значительно ближе, чем кажется и даже тривиальные строки кода несут в себе undefined behavior.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/136283/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sun, 15 Jan 2012 19:28:10 GMT</pubDate>
		<author>gribozavr</author>
		<category>программирование</category><category>wtf</category><category>Си</category><category>C</category><category>undefined behavior</category><category>aliasing</category><category>overflow</category><category>floating point</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Новая карта мира С++ от Alenacpp]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/135917/</guid>
		<link>http://habrahabr.ru/blogs/cpp/135917/</link>			
		<description><![CDATA[Вышла новая версия знаменитой уже карты мира С++ от <a href="http://alenacpp.blogspot.com/">Алёны Сагалаевой</a> и <a href="http://jimblog.me/">Джима</a>. На карте отражены последние изменения, пришедшие к нам со стандартом <b>С++11</b> — обратите внимание на хамелеона <b>auto</b>, Пресловутые Врата Анонимности, руины крепости <b>std::auto_ptr</b> и новые боевые юниты STL. Наслаждайтесь!<br/>
<br/>
<img src="http://habrastorage.org/storage2/0df/5b3/650/0df5b36501cebae731e644a48a3dfc9d.png"/><br/>
<br/>
<a href="http://softwaremaniacs.org/Images/alenacpp/cppmap-2012.png">Оригинальный размер (18 Мб)</a><br/>
<a href="http://goldns.ru/cppmap-2012.png">Зеркало</a><br/>
P.S. Сама Алёна не против использования карты в любых целях, правда, часть исходных картинок взята из интернета, а значит за полную чистоту копирайта никто вам поручаться не будет.]]></description>
		
		<pubDate>Mon, 09 Jan 2012 18:42:10 GMT</pubDate>
		<author>tangro</author>
		<category>alenacpp</category><category>карта</category>
	</item>
	
	
	
	
	
	

	
	
	
	
		
	<item>		
		<title><![CDATA[C++ / [Опрос] Использовали ли Вы множественное наследование C++ в реальных проектах?]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/135609/</guid>
		<link>http://habrahabr.ru/blogs/cpp/135609/</link>
		<description><![CDATA[]]></description>
		
		<pubDate>Sun, 01 Jan 2012 21:10:58 GMT</pubDate>
		<author>IDY</author>
		<category>множественное наследование</category><category>multiple inheritance</category>
	</item>
	
	

		
	<item>		
		<title><![CDATA[C++ / Работа с бинарными файлами в стиле STL]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/134788/</guid>
		<link>http://habrahabr.ru/blogs/cpp/134788/</link>			
		<description><![CDATA[Я хотел бы рассказать о решении одной задачи, возникшей в процессе обучения старших школьников и младшекурсников программированию. Естественно, пишу я об этом, потому что считаю, что этот опыт может быть интересен более широкой аудитории.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/134788/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sat, 17 Dec 2011 21:31:03 GMT</pubDate>
		<author>ulysses</author>
		<category>stl</category><category>бинарные файлы</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Как уменьшить вероятность ошибки на этапе написания кода. Заметка N4]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/134571/</guid>
		<link>http://habrahabr.ru/blogs/cpp/134571/</link>			
		<description><![CDATA[<img align="left" src="http://www.viva64.com/external-pictures/habr93/image1.png" alt="PVS-Studio vs Firefox"/><br/>
Это уже четвертая заметка, где я хочу поделиться полезными наблюдениями о паттернах ошибок и том, как можно с ними бороться. В этот раз я затрону такую тему, как обработка редких и аварийных ситуаций в программах. Рассматривая множество программ, я пришел к выводу, что код обработки ошибок в Си/Си++ программах — одно из самых ненадежных мест.<br/>
К чему приводят такие дефекты? Программа, вместо того, чтобы выдать сообщение «файл X не найден», падает и заставляет пользователя гадать, что он не так делает. Программа для работы с базой данных выводит невразумительное сообщение, вместо того, чтобы сообщить, что неверно заполнено одно из полей. Попробуем сразиться с этой разновидностью ошибок, которые досаждают нашим пользователям.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/134571/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 14 Dec 2011 07:17:44 GMT</pubDate>
		<author>Andrey2008</author>
		<category>c++</category><category>c plus plus</category><category>программирование</category><category>статический анализ кода</category><category>pvs-studio</category><category>обзор кода</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[C++ / [Из песочницы] Ускоряем OpenMP в Visual C++ 2010]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/134547/</guid>
		<link>http://habrahabr.ru/blogs/cpp/134547/</link>			
		<description><![CDATA[Одним из популярных и дешёвых средств реализации многопоточных вычислений на языке C++ является <a href="http://ru.wikipedia.org/wiki/OpenMP">OpenMP</a>.<br/>
<br/>
Достоинства технологии очевидны: простота; малые, и легко отключаемые изменения в коде; поддержка от авторов самых популярных компиляторов:<ul>
<li>Visual C++</li>
<li>GCC 4.2</li>
<li>Intel C++ Compiler</li>
</ul>Проверка боем проходит успешно, и вот распараллеленный код проникает в самые укромные уголки проекта, бьёт все рекорды производительности, выдавая шикарную статистику, подтверждающую успешность релиза.<br/>
<br/>
Проходит пара лет, вы успешно мигрируете на Visual Studio 2010,… и обнаруживаете себя сидящим в луже. Если вчера обработка большого массива данных на машинах с многоядерными процессорами проходила за считанные секунды, то сегодня наличие любого фонового приложения, занимающего собственными вычислениями одно или несколько ядер, практически вешает приложение.<br/>
<br/>
Почему так происходит, и как с этим бороться?<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/134547/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 14 Dec 2011 05:14:45 GMT</pubDate>
		<author>infsega</author>
		<category>openmp</category><category>visual c++</category><category>parallel programming</category>
	</item>
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[C++ / [Из песочницы] WebService c поддержкой gzip на C]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/133176/</guid>
		<link>http://habrahabr.ru/blogs/cpp/133176/</link>			
		<description><![CDATA[В посте речь пойдет о моем опыте встраивания <a href="http://en.wikipedia.org/wiki/Web_service">XML-RPC</a> интерфейса в утилиту, написанную на C. Интерфейс должен предоставлять доступ к статитстике и результатам работы утилиты. Одно из требований к интерфейсу — поддержка ответов в формате <a href="http://en.wikipedia.org/wiki/Gzip">gzip</a>, в целях экономии трафика. Мне очень хотелось обойтись малой кровью и вот что из этого получилось.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/133176/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Tue, 22 Nov 2011 14:53:06 GMT</pubDate>
		<author>a4tunado</author>
		<category>c</category><category>c++</category><category>http</category><category>zlib</category><category>gzip</category><category>xml-rpc</category><category>webservice</category>
	</item>
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[C++ / [Из песочницы] C++ Variadic templates. Каррирование и частичное применение]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/133084/</guid>
		<link>http://habrahabr.ru/blogs/cpp/133084/</link>			
		<description><![CDATA[Доброго времени суток, уважаемое Хабрасообщество.<br/>
Недавно приходилось наблюдать дискуссию о каррировании и частичном применении. Суть этой полемики состояла в том, что лучше, для практических целей, иметь в языке программирования: встроенное частичное применение (например, как в <a href="http://ru.wikipedia.org/wiki/Nemerle">Nemerle</a>) или встроенное каррирование (как, например, в <a href="http://ru.wikipedia.org/wiki/Haskell">Haskell</a>).<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/133084/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 21 Nov 2011 13:49:22 GMT</pubDate>
		<author>dima_mendeleev</author>
		<category>карринг</category><category>частичное применение</category><category>c plus plus</category><category>variadic templates</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Qt+OpenGl — Основы. Часть 1]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/132674/</guid>
		<link>http://habrahabr.ru/blogs/cpp/132674/</link>			
		<description><![CDATA[Данная cтатья вводная, рассчитана на знакомство с Qt+OpenGL для новичков, которые планируют изучать Qt (как кросс-платформенный инструментарий разработки ПО на языке программирования C++) + OpenGL (как графическую библиотеку).<br/>
<br/>
<b>Что потребуется новичку:</b><br/>
1) <a href="http://ru.wikipedia.org/wiki/Qt_Creator">Qt Creator</a> (имеет хорошую встроенную документацию и подсказки во время набора кода). <a href="http://qt.nokia.com/downloads">Скчаать</a><br/>
2) <a href="http://doc.qt.nokia.com/4.7-snapshot/">doc.qt.nokia.com</a> — официальная документация на английском языке<br/>
3) <a href="http://doc.crossplatform.ru/qt/4.7.x/">doc.crossplatform.ru</a> — документация на русском языке<br/>
4) Обязательно прочесть про <a href="http://ru.wikipedia.org/wiki/Qt">Qt</a> и <a href="http://ru.wikipedia.org/wiki/OpenGL">OpenGL</a><br/>
5) <a href="http://ru.opensuse.org/QT">Отличная статья для начала изучения</a><br/>
<br/>
<b>Что мы будем делать</b><br/>
Поскольку данная статья посвящена конкретно основам, в нашей задаче будет следующее:<br/>
1) Разобрать как создается приложение<br/>
2) Как рисовать объекты <br/>
3) Как работать с указателем мыши и событиями(нажатие клавиш на клавиатуре и на мышке)<br/>
4) Работа с таймером<br/>
5) Создадим нашу первую банальную игру. Будем с помощью таймера, случайным образом перемещать квадрат. После наведения на квадрат указателя и кликнув по нему левой кнопки мышки, в случае попадания по квадрату, будем прибавлять к полученным очкам +1. <br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/132674/#habracut">Этапы построения</a> </div>]]></description>
		
		<pubDate>Tue, 15 Nov 2011 18:19:39 GMT</pubDate>
		<author>valualit</author>
		<category>с++</category><category>opengl</category><category>qt</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[C++ / [Из песочницы] C/C++ Создание своих библиотек на gcc]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/132300/</guid>
		<link>http://habrahabr.ru/blogs/cpp/132300/</link>			
		<description><![CDATA[Ниже описанное в принципе является общеизвестным, тем не менее надеюсь, что пост облегчит кому-нибудь жизнь. Так же хочу оговориться, что пост ориентирован на пользователей linux, хотя с небольшими изменениями может быть использован и на других платформах. <br/>
<br/>
Под катом я объясню как создать свою динамическую библиотеку, и как подключить ее к своим проектам. Так же будет немного информации о статических библиотеках.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/132300/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 09 Nov 2011 16:45:31 GMT</pubDate>
		<author>darksith</author>
		<category>gcc</category><category>C</category><category>C++</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Перегрузка операторов в C++]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/132014/</guid>
		<link>http://habrahabr.ru/blogs/cpp/132014/</link>			
		<description><![CDATA[Доброго времени суток!<br/>
<br/>
Желание написать данную статью появилось после прочтения поста <a href="http://habrahabr.ru/blogs/cpp/123417/">Перегрузка C++ операторов</a>, потому что в нём не были раскрыты многие важные темы.<br/>
<br/>
Самое главное, что необходимо помнить — перегрузка операторов, это всего лишь более удобный способ вызова функций, поэтому не стоит увлекаться перегрузкой операторов. Использовать её следует только тогда, когда это упростит написание кода. Но, не настолько, чтобы это затрудняло чтение. Ведь, как известно, код читается намного чаще, чем пишется. И не забывайте, что вам никогда не дадут перегрузить операторы в тандеме со встроенными типами, возможность перегрузки есть только для пользовательских типов/классов.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/132014/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sun, 06 Nov 2011 21:02:45 GMT</pubDate>
		<author>Tibr</author>
		<category>C++</category><category>operators overloading</category><category>перегрузка операторов</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / std::stringstream и форматирование строк]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/131977/</guid>
		<link>http://habrahabr.ru/blogs/cpp/131977/</link>			
		<description><![CDATA[Ввод и вывод информации — критически важная задача, без выполнения которой любая программа становится бесполезной. В <b>C++</b> для решения данной задачи традиционно применяются потоки ввода-вывода, которые реализованы в стандартной библиотеке <b>IOStream</b>.<br/>
<br/>
Плюсами такого подхода являются:<br/>
 — универсальность: не важно, с чем связан поток, — ввод-вывод с консоли, файла, сокета, процесса происходит одинаково;<br/>
 — прозрачность: программисту не нужно явно указывать тип вводимого или выводимого объекта;<br/>
 — расширяемость: программист может добавить поддержку ввода-вывода в поток для любого своего объекта, просто перегрузив соответствующие операторы.<br/>
<br/>
В библиотеке <b>IOStream</b> есть также класс <code>stringstream</code>, который позволяет связать поток ввода-вывода со строкой в памяти. Всё, что выводится в такой поток, добавляется в конец строки; всё, что считыватся из потока — извлекается из начала строки.<br/>
<br/>
Он позволяет делать весьма забавные вещи, например, осуществлять преобразование типов:<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/131977/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sun, 06 Nov 2011 06:21:05 GMT</pubDate>
		<author>lionsimba</author>
		<category>stringstream</category><category>stream</category><category>string</category><category>stream to string</category><category>string format</category><category>форматирование строк</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[C++ / [Из песочницы] Клиент-серверный чат, используя сокеты Qt/C++]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/131585/</guid>
		<link>http://habrahabr.ru/blogs/cpp/131585/</link>			
		<description><![CDATA[<h4>Предисловие</h4><br/>
Статья ориентирована в основном на новичков. Целью ее написания является быстрое и максимально подробное описание сокетов, для начального понимания сети и сокетов. В свое время искал подобную, но нужны были подробные примеры. В стандартном примере fortune server/client, который идет с qt очень плохо показывают возможности сокетов.<br/>
<br/>
Итак, сервер умеет:<ul>
<li>«Слушать» произвольный адрес, порт</li>
<li>Авторизовать клиента по имени</li>
<li>Отправлять общие, приватные, серверные сообщения</li>
<li>Отправлять список пользователей</li>
</ul>Клиент умеет подавать соответствующие запросы серверу.<br/>
<br/>
Для понимания это будут Гуи-приложения:<br/>
<br/>
<img src="http://dl.dropbox.com/u/46279515/%D0%91%D0%B5%D0%B7%D1%8B%D0%BC%D1%8F%D0%BD%D0%BD%D1%8B%D0%B9.jpg" alt="image"/><br/>
<br/>
В qt существуют классы QTcpSocket и QTcpServer для работы с сокетами. Используя сигналы и слоты, с ними можно работать в неблокирующем (асинхронном режиме). Это значит, если подключение к серверу занимает заметное количество времени, гуи не блокируется, а продолжает обрабатывать события, а когда произойдет подключение (либо ошибка), вызовется определенный слот (в текущем случае подключенный к сигналу connected()).<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/131585/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 31 Oct 2011 12:26:08 GMT</pubDate>
		<author>deadvip</author>
		<category>сервер</category><category>клиент</category><category>чат</category><category>сокет qtcpserver</category><category>qtcpsocket</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[C++ / C++11 — removed and deprecated]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/131512/</guid>
		<link>http://habrahabr.ru/blogs/cpp/131512/</link>			
		<description><![CDATA[<img src="http://habrastorage.org/storage1/7bc6d64b/788e5773/3b0d0b5b/30ad3cca.png" align="left"/><br/>
 Все уже в курсе выхода нового стандарта С++11, на Хабре уже было несколько статей о его фичах. А я вот решила написать о том, что из С++ в новой версии было исключено и по каким причинам. Оно, может быть, кажется и не таким важным, как новые возможности, но, как говорится: «Тот, кто не знает истории, обречён на повторение ошибок». <br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/131512/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sun, 30 Oct 2011 13:23:41 GMT</pubDate>
		<author>Milla</author>
		<category>c++11</category><category>deprecated</category>
	</item>
	
	
	
	
	
	

	
	
	
		
	<item>		
		<title><![CDATA[C++ / [Перевод] Ещё более современный C++]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/131478/</guid>
		<link>http://habrahabr.ru/blogs/cpp/131478/</link>
		<description><![CDATA[“C++11 feels like a new language.” – Bjarne Stroustrup<br/>
<br/>
Не так давно <a href="http://ru.wikipedia.org/wiki/Герб_Саттер">Герб Саттер</a> открыл на своём сайте новую страничку — <a href="http://herbsutter.com/elements-of-modern-c-style/">Elements of Modern C++ Style</a>, где он описывает преимущества нового стандарта и то, как они повлияют на код. <div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/131478/#habracut">А под катом прячется вольный перевод содержимого этой странички.</a> </div>]]></description>
		
		<pubDate>Sat, 29 Oct 2011 21:08:59 GMT</pubDate>
		<author>barmaley_exe</author>
		<category>C++</category><category>C++0x</category><category>С++11</category>
	</item>
	
	
	

		
	<item>		
		<title><![CDATA[C++ / Простой сервер на Qt/C++]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/131472/</guid>
		<link>http://habrahabr.ru/blogs/cpp/131472/</link>			
		<description><![CDATA[В последнее время очень часто приходится слушать определенный порт, получать данные от клиента и отправлять соответствующий ответ. Решил поделиться с новичками, как же создать такой сервер и решить некоторые поставленные вопросы. <br/>
<b>В этой статье мы рассмотрим:</b><br/>
 — Создание tcp сервера. <br/>
 — Подключение нескольких клиентов к серверу параллельно.<br/>
 — Отключение клиентов (отключение сокетов).<br/>
 — Получение и отправку данных.<br/>
<br/>
Исходники: <a href="https://github.com/valualit/QTcpServer01">https://github.com/valualit/QTcpServer01</a><br/>
<br/>
<img src="http://cervera.ru/habra/ser2.png" alt="image"/><br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/131472/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sat, 29 Oct 2011 10:35:18 GMT</pubDate>
		<author>valualit</author>
		<category>QT</category><category>C++</category><category>QTcpServer</category><category>QTcpSocket</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[C++ / [Из песочницы] Обработка Segmentation Fault в C++]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/cpp/131412/</guid>
		<link>http://habrahabr.ru/blogs/cpp/131412/</link>			
		<description><![CDATA[<h4>Вводная</h4><br/>
C++ является «небезопасным» («unmanaged») языком, поэтому программы могут «вылетать» — аварийно завершать работу без сохранения данных пользователя, сообщения об ошибке и т.п. — стоит только, например, залезть в не инициализированную память. Например:<br/>
<pre><code class="cpp">void fall()
{
  char * s = &quot;short_text&quot;;
  sprintf(s,&quot;This is very long text&quot;);
}
</code></pre><br/>
или<br/>
<pre><code class="cpp">void fall()
{
  int * pointer = NULL;
  *pointer = 13;
}
</code></pre><br/>
<br/>
Всем было бы лучше, если бы мы могли «отловить» падение программы — точно так же, как в java ловим исключения — и выполнить хоть что-то перед тем, как программа упадет (сохранить документ пользователя, вывести диалог с сообщением об ошибке и т.п.)<br/>
<br/>
Общего решения задача не имеет, так как C++ не имеет собственной модели обработки исключений, связанных с работой с памятью. Тем не менее, мы рассмотрим два способа, использующих особенности операционной системы, вызвавшей исключение.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/cpp/131412/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Fri, 28 Oct 2011 09:34:05 GMT</pubDate>
		<author>Arenim</author>
		<category>c plus plus</category><category>exception</category><category>segmentation fault</category><category>signal</category><category>posix</category><category>handling</category>
	</item>
	
	
	
	
	

	

	
	
	
	
	
</channel>
</rss>

