Статьи

Злоупотребление QMap

(перевод Racheengel)

Класс QMap<Key, Value> сохраняет пары (ключ, значение), где каждый ключ ассоциирован с отдельным значением. В данной статье представлен "грязный и быстрый" трюк, позволяющий связывать ключи с несколькими значениями.

volatile - лучший друг программиста работающего с потоками

Andrei Alexandrescu

Оригинал статьи:
http://www.ddj.com/cpp/184403766

Ключевое слово volatile было разработано для отключения компиляторной оптимизации, которая могла бы привести к неверной работе кода в мультипоточном окружении. К примеру: если переменная базового типа объявлена как volatile, то компилятору не разрешается кэшировать ее в регистре - распостраненная оптимизация, которая может привести к катастрофическим результатам, если данная переменная используется в нескольких потоках. Так что общее правило - если у вас есть переменные базовых типов, которые нужно использовать в нескольких потоках - объявляйте их как volatile. Однако возможности volatile намного шире: вы можете использовать его для нахождения не thread-safe кода и делать это можно в compile time. В статье показано как это сделать; в решении используется простой smart pointer, который также облегчает сериализацию критических секций кода.

Что представляет из себя STL

Стандартная библиотека шаблонов STL (англ. standard template library) — набор шаблонов функций и классов в языке C++, включающий в себя различные контейнеры данных (список, очередь, множество, отображение, хэштаблица, очередь с приоритетами) и базовые алгоритмы (сортировка, поиск).

Введение в OpenSSL

http://www.openssl.org/source/
Пакет OpenSSL содержит средства управления и библиотеки, связанные с шифрованием. Это полезно для предоставления функций шифрования другим пакетам, особенно OpenSSH, почтовым приложениям и интернет браузерам (для доступа к HTTPS сайтам).
Скачать OpenSSL:

Практическое использование boost

Вступление
Увидев boost впервые вполне можно потеряться в списке возможностей библиотеки - я рассмотрю простейшие и наиболее часто употребляемые. ...subject of change...

Снова о Gtkmm и Qt

Автор: Guillaume Laurent
Перевод: AnDi Peredri

И давайте надеяться, в последний раз.

В этом интервью Murray Cumming, в настоящее время являющийся разработчиком библиотеки Gtkmm ( ранее известной как Gtk-- ), рассказывает о причинах моего ухода из проекта Gtkmm и о преимуществах Gtkmm в сравнении с Qt. Так как я в значительной степени не согласен с тем, что он говорит, считаю необходимым ответить.

От GTK к PyQt

Автор: Philippe Fremy
Перевод: Andi Peredri

Введение


Все началось с того, что я захотел написать игру Klotski. Однако в сети я нашел Gnotski и решил провести испытание: сколько уйдет времени на то, чтобы перенести программу с GTK на Qt, и как трудно это сделать? В конечном счете, я нашел это занимательным и решил сделать несколько вариантов программы, чтобы проанализировать каждый инструментарий.

Расширенные диалоги

Автор: Reginald Stadlbauer
Перевод: Andi Peredri

Неофициальный перевод статьи Extension Dialogs выполнен с любезного разрешения Trolltech.

Расширенный диалог - это диалоговое окно, имеющее два различных интерфейсных вида: 'простой' и более крупный 'расширенный'. Расширенные диалоги позволяют скрыть многочисленные опции от неквалифицированных и небрежных пользователей и, в то же время, не ограничивать в возможностях настройки опытных пользователей. Такие диалоги можно легко создавать с помощью Qt и Qt Designer.

Бинарная совместимость в C++

Автор: Matthias Ettrich
Перевод: Andi Peredri

Определение

Библиотека является бинарно совместимой, если программа, собранная с предыдущей версией библиотеки, может работать с ее новой версией без перекомпиляции.

Масштабирование QCanvasItem-объектов

Автор: Andi Peredri

Довольно часто при работе с классом QCanvas требуется обеспечить индивидуальное ручное масштабирование элементов QCanvasItem. В этой статье показано, как реализуется выбор, перемещение и масштабирование элементов QCanvasItem на примере небольшой демонстрационной программы.

RSS-материал