RAII – одна из наиболее важных и полезных идиом в C++. RAII освобождает программиста от ручного управления ресурсами, без неё крайне затруднено написание безопасного с точки зрения исключений кода. Возможно, самое популярное использование RAII – это управление динамически выделяемой памятью с помощью умных указателей, но она также может с успехом применяется и к другим ресурсам, особенно в мире низкоуровневых библиотек. Примеры включают в себя дескрипторы Windows API, файловые дескрипторы POSIX, примитивы OpenGL и тому подобное.Читать полностью »
Рубрика «С++» - 15
Управление ресурсами с помощью явных специализаций шаблонов
2015-04-10 в 14:27, admin, рубрики: c++, Блог компании Positive Technologies, обобщённое программирование, Программирование, разработка, С++, метки: Обобщённое программирование, Разработка(Перевод) Введение в разработку C++ в UE4
2015-04-05 в 22:33, admin, рубрики: blueprint, c++, game development, Unreal Engine, Unreal Engine 4, перевод, С++ Часть 1. Введение. Создание класса и добавление свойств. Расширение класса С++ с помощью Blueprint.
Часть 2. Классы геймплея. Структуры. Отражение (reflection) в Unreal. Object/Actor итераторы. Менеджер памяти и сборщик мусора.
Часть 3. Префиксы в именах классов. Целочисленные типы. Типы контейнеров. Итераторы контейнеров. Цикл For-each, хеш-функции.
Часть 4. Бонусная. Unreal Engine 4 для Unity разработчиков.
Эта статья является переводом части документации по UE4. Оригинальную статью вы можете найти пройдя по это ссылке.
Разработка ММО РПГ – практическое руководство. Эпизод 1
2015-04-03 в 0:15, admin, рубрики: away3d, c++, flash, Flash-платформа, flex, Блог компании Starni Games, игры, менеджмент проектов, разработка, С++
|
В цикле статей «Разработка ММО РПГ – практическое руководство» вы получите ответы на эти и многие другие вопросы. Все цифры реальны. Все схемы, таблицы, исходный код, диаграммы БД и прочее взяты из реально существующего и успешно работающего проекта.
В тексте будет много отсылок к геймплею и внешнему виду нашей игры «Звездные Призраки». Я постараюсь излагать материал так, чтобы вам не было нужды вникать (и играть) в наш продукт, но для лучшего понимания материала желательно потратить пару минут и посмотреть, как это все выглядит.
Готовы? Тогда в путь!Читать полностью »
C++. От ламера до программера
2015-03-31 в 9:08, admin, рубрики: c++, Блог компании Издательский дом «Питер», Профессиональная литература, С++, метки: с++ Привет Хаброжители!
У нас вышла книга Алекса Эллайна «C++. От ламера до программера»
Прототип: Jumping into C++ Paperback – April 19, 2013
Эта книга предлагает быстрый способ изучить принципы объектно-ориентированного программирования и освоить практику программирования на языке С++. Издание может использоваться как учебный курс для начинающих осваивать C++, так и удобный справочник для тех, кто хочет быстро найти актуальную информацию о том или ином аспекте языка. Автор книги Алекс Эллайн — профеcсиональный разработчик на С++, создатель популярнейшего ресурса Cprogramming.com, предлагает собственную уникальную методику обучения программирования, которая позволит вам в кратчайшие сроки стать экcпертом разработки на C++.
Читать полностью »
Создания Windows Runtime компонента на Visual C++
2015-03-16 в 6:37, admin, рубрики: c++, mobile development, windows, windows runtime, windows store app dev, windows store dev, Программирование, разработка под windows, разработка под windows phone, С++Тернистая дорога через дебри C# и заросли C++/CX разработки для Windows Runtime в какой-то момент привела меня к библиотеке шаблонов WRL, облегчающей написание приложений и компонентов WinRT и COM. При работе именно с этой библиотекой мне захотелось узнать, что же может скрывает под собой код:
#include "pch.h"
#include "RAWinRT.WRL.h"
using namespace Microsoft::WRL::Wrappers;
using namespace Microsoft::WRL;
using namespace ABI::RAWinRT::WRL;
using namespace ABI::Windows::ApplicationModel::Background;
class ABI::RAWinRT::WRL::TestTask : public RuntimeClass < RuntimeClassFlags<WinRt>, IBackgroundTask >
{
InspectableClass(RuntimeClass_RAWinRT_WRL_TestTask, BaseTrust);
public:
STDMETHODIMP Run(IBackgroundTaskInstance *taskInstance) override
{
return S_OK;
}
};
ActivatableClass(TestTask);
и эти загадочные макросы, шаблоны, функции библиотеки.
И решил я начать с самой простого. Написать компонент Windows Runtime, имеющий единственный «класс» фоновой задачи, на Visual C++.
Если вам интересно, что из этого получилось, то добро пожаловать под кат.Читать полностью »
ZeptoLab Code Rush 2015 уже близко
2015-03-13 в 13:13, admin, рубрики: android, c++, development, game development, Gamedev, iphone, objective-c, sport programming, Zeptolab, Блог компании ZeptoLab, Разработка под android, С++, Спортивное программированиеПривет Хабражителям!
В 2014 году мы провели свой первый совместный контест по спортивному программированию совместно с Codeforces, об этом мы писали здесь.
Коротко о том, как это было:
Контест состоял из 6 задач, на решение отводилось 2,5 часа (ознакомиться с задачами прошлого года и даже попробовать свои силы в их решении вы можете здесь).
Конечно же, даже на сугубо девелоперском мероприятии мы остались верны себе, поэтому все задачи были придуманы по мотивам наших игр, и, разумеется, мы их заботливо проиллюстрировали:
Впервые за всю историю Codeforces в контесте приняли участие одновременно более 2148 человек (зарегистрировалось более 4600 (!) со всего мира. К слову сказать, первые 3 места заняли Читать полностью »
Гранты, митапы и школы для начинающих и продолжающих разработчиков в Москве и не только. Выпуск второй
2015-03-06 в 7:01, admin, рубрики: arduino, C, css, html, javascript, Parallels, php, python, scala, Блог компании #tceh, геймдев, образование в ит, образование онлайн, Программирование, С++, самообразованиеПосле первого поста нам написали 7 человек: одна выбила грант для программистов-подростков, у второй компания делает хорошую штуку для студентов-технарей, третья развивает свежий некоммерческий онлайн-проект по теме, четвертый рекомендовал, где проверять скиллы, пятый после нескольких лет разработки игр решил собрать свой первый митап.
А двое только планируют свои школы программирования.
Мы подумали рассказать их истории, плюс восполнить пробел по несколькими не вошедшим в первый дайджест программам.
Это реальный вопрос, заданный ребенком Григорию Бакунову месяц назад. Мы до сих пор ходим улыбаемся
Интересные штуки, касающиеся, в первую очередь, Android и Java вы можете посмотреть в первом выпуске.
А сегодня мы поговорим о C/С#/С++, геймдеве, Ruby, Linux, Arduino, курсах для ваших детей, племянников и детей ваших знакомых. И – PHP.
Читать полностью »
Ужасный баг в Portland Group C++ компиляторе
2015-02-05 в 16:34, admin, рубрики: c++, fortran, pgcpp, PGI, Portland Group, std::sort, компиляторные баги, Компиляторы, С++, метки: компиляторные багиЭта публикация для тех, кто вынужден по долгу службы пользоваться pgcpp компилятором или поддерживать совместимость кода с этим компилятором.
На днях я получил баг репорт, что мой код неправильно работает, если его скомпилировать при помощи pgcpp.
Начав разбираться, я нашел место, где происходит ошибка. Оказалось, что если код компилируется с O2 или O3 оптимизацией, то std::sort может начать дублировать часть вектора и заменять этими дубликатами другие части.
Вот простой C++ код, который поможет воссоздать это ужасное поведение (обратите внимание на число 3193 в выводе):
Читать полностью »
Аннотация к «Effective Modern C++» Скотта Майерса. Часть 2
2015-02-04 в 3:59, admin, рубрики: c++, Effective Modern C++, Scott Meyers, Программирование, С++, с++11, С++14 Продолжение предыдущего поста.
В этой части мы будем рассматривать не столько технические изменения в С++, сколько новые подходы к разработке и возможности которые дают новые средства языка. Предыдущий пост был с моей точки зрения просто затянувшимся вступлением, тогда как здесь можно вволю подискутировать.
Читать полностью »
Аннотация к «Effective Modern C++» Скотта Майерса
2015-01-26 в 5:02, admin, рубрики: c++, Effective Modern C++, Scott Meyers, Программирование, С++, с++11
Пару месяцев назд Скотт Майерс (Scott Meyers) выпустил новую книгу Effective Modern C++. Последние годы он безусловно является писателем №1 «про это», кроме того он блестящий лектор и каждая его новая книга просто обречена быть прочитана пишущими на С++. Более того, именно такую книгу я ждал давно, вышел стандарт С++11, за ним С++14, уже виднеется впереди С++17, язык стремительно меняется, однако нигде так и не были описаны все изменения в целом, взаимосвязи между ними, опасные места и рекомендуемые паттерны.
Тем не менее, регулярно просматривая Хабр, я так и не нашел публикации о новой книге, похоже придется писать самому. На полноценный перевод меня конечно не хватит, поэтому я решил сделать краткую выжимку, скромно назвав ее аннотацией. Еще я взял на себя смелость перегруппировать материал, мне кажется для короткого пересказа такой порядок подходит лучше. Все примеры кода взяты прямо из книги, изредка с моими дополнениями.
Читать полностью »