Рубрика «c++» - 216

PVS-Studio, VirtualDub
Только что, я сел и проверил проект VirtualDub с помощью PVS-Studio. Выбор был случаен. Я считаю, самое главное регулярно проверять/перепроверять различные проекты, чтобы показать, как развивается анализатор кода PVS-Studio. А какой проект будет проверен, не так важно. Ошибки есть везде. Проект VirtualDub мы уже проверяли в 2011 году, но тогда почти ничего интересного не нашлось. Вот я и решил посмотреть, как обстоят дела, спустя 2 года.

Читать полностью »

Всем привет!

Увлекаетесь разработкой мобильных приложений? Владеете С++ или HTML5? А может, у вас уже есть приложение, которое вы хотели бы портировать на платформу Tizen? Мечтаете поучаствовать в конкурсе Tizen App Challenge?

Тогда это для вас!
21 22 октября приглашаем на Tizen Hackathon в Ярославле
21–22 октября 2013 года приглашаем вас в Ярославский Государственный Университет на Tizen Hackathon с ценными призами от организаторов.

Рабочее место, поддержку специалистов Samsung, печеньки и благоприятную рабочую атмосферу гарантируем. От вас потребуется ноутбук, желательно с уже установленным Tizen SDK самой свежей версии.

Мероприятие пройдёт по адресу: г. Ярославль, ул. Первомайская, 2а, «Знаменская Башня», Центр Интернет.
Читать полностью »

Lock free структуры данных. Основы: откуда пошли быть барьеры памяти
Как только я заинтересовался lock-free алгоритмами, меня стал мучить вопрос – а откуда взялась необходимость в барьерах памяти, в «наведении порядка» в коде?
Конечно, прочитав несколько тысяч страниц руководств по конкретной архитектуре, мы найдем ответ. Но этот ответ будет годен для этой конкретной архитектуры. Есть ли общий? В конце концов, мы же хотим, чтобы наш код был портабелен. Да и модель памяти C++11 не заточена под конкретный процессор.
Наиболее приемлемый общий ответ дал мне мистер Paul McKenney в своей статье 2010 года Memory Barriers: a Hardware View of Software Hackers. Ценность его статьи – в общности: он построил некоторую упрощенную абстрактную архитектуру, на примере которой и разбирает, что такое барьер памяти и зачем он был введен.
Вообще, Paul McKenney – известная личность. Он является разработчиком и активным пропагандистом технологии RCU, которая активно используется в ядре Linux, а также реализована в последней версии libcds в качестве ещё одного подхода к безопасному освобождению памяти (вообще, о RCU я хотел бы рассказать отдельно). Также принимал участие в работе над моделью памяти C++11.
Статья большая, я даю перевод только первой половины. Я позволил себе добавить некоторые комментарии, [которые выделены в тексте так].
Читать полностью »

Вышел AppCode 2.5
Привет! У нас прекрасные новости: только что выпущена новая версия AppCode — нашей классной IDE для Objective-C. В версии 2.5 вас ждет полная поддержка Xcode 5, встроенная интеграция с CocoaPods, усовершенствованное юнит-тестирование и многие другие улучшения.
Читать полностью »

Если вы фрилансер и любите экспериментировать с экзотическими средами под С++, то стоит обратить внимание на экосистему Ultimate++, о которой я узнал совсем недавно благодаря циклу статей Семена Есилевского (ч.1, ч.2, ч.3, ч.4 — все есть на вики) с таким финальным напутствием:

«Перевешивают ли выгоды U++ его необычность и высокий «барьер вхождения»? На мой взгляд, да. U++ – прекрасный выбор для кроссплатформенных проектов, которые разрабатываются «с нуля», особенно если предполагается интенсивное использование баз данных.»

Под катом те нюансы U++, которые удалось раскопать на форуме и в мануалах за месяц ежедневной работы над редактируемым справочником документов, хранящихся в базе. Сразу отмечу, что сравнения с «замечательной троицей» не будет, так как раньше для простейшего gui использовал WTL и с надеждой смотрел на библиотеку eGUI++, которую, к сожалению, автор забросил, а подхватить некому.

Читать полностью »

Добрый день!
Решил написать этот топик на тему скриптов

Что такое скрипты и с чем их едят — Lua & C++

Что нужно знать?

  • С++ на приличном уровне (в уроке будут шаблоны — template)
  • Lua, очень легкий скриптовый язык. Советую этот урок.

Почему писать диалоги игры в .cpp файле было большой ошибкой

Если вы разрабатывали большие проекты (к примеру, масштабные игры), замечали, что с каждой новой сотней строк кода компиляция идет медленней?
В игре создается больше оружия, больше диалогов, больше меню, больше etc.
Одна из самых главных проблем, возникающих в связи с нововведениями — поддерживать бессчетное множество оружия и бейджиков довольно сложное занятие.
В ситуации, когда просьба друга/босса/напарника изменить диалог или добавить новый вид оружия занимает слишком много времени, приходится прибегать к каким-то мерам — например, записи всей этой фигни в отдельные текстовые файлы.
Почти каждый геймдевелопер когда-нибудь делал карту уровней или диалоги в отдельном текстовом файле и потом их считывал. Взять хотя бы простейший вариант — олимпиадные задачи по информатике с файлом ввода

Но есть способ, на голову выше — использование скриптов.

Читать полностью »

На прошлой неделе Андрей Александреску отрапортовал твиттером о первом коммите на языке D в кодовую базу Фейсбука. «5112 lines of sweet code!» В подробностях, опубликованных на форуме dlang.org, Андрей говорит про серьезные улучшения в производительности, скорости сборки и объеме кода по сравнению со старым на С++. Новость совершенно замечательная для D сообщества, так как она служит подтверждением годности языка в контексте профессиональной разработки.

Естественно, такие новости привлекают внимание разработчиков и за пределами D сообщества. Все же хотят больше производительности и меньше кода. Главный вопрос, если Александреску переписывает код с C++ на D, то не пора ли и нам?
Читать полностью »

Всем привет!
Продолжаю перевод книги John Torjo «Boost.Asio C++ Network Programming».

Содержание:

В этой главе рассматриваются некоторые дополнительные темы Boost.Asio. Маловероятно, что вы будете использовать это каждый день, но, безусловно, будет не лишним это знать:

  • Если отладка не удается, то вы увидите, что Boost.Asio поможет вам в этом
  • Если вам придется работать с SSL, то посмотрите, что вам может предложить Boost.Asio
  • Если вы пишите приложение под определенную OC, то посмотрите, какие дополнительные функции есть в Boost.Asio для вас

Читать полностью »

Вступление

Язык QML для Qt Quick позволяет c легкостью делать многие вещи, особенно что касается анимированных пользовательских интерфейсов. Однако, не всё возможно сделать или не всё подходит под реализацию в QML, в частности:

  • получение доступа к функциональности извне окружения QML/Javascript
  • реализация критических по производительности функций, где требуется нативный код для повышения эффективности
  • большой или сложный не декларативный код, который было бы утомительно реализовывать в JavaScript

Как Вы увидите впоследствии, Qt легко отображает C++ код для QML. В этой статье мы создадим маленькое, но функциональное приложение, делающее это. Пример написан для Qt 5 и использует компоненты Qt Quick, поэтому для запуска примера Вам необходим как минимум Qt 5.1.0.
Читать полностью »

Пишем игры на C++, Часть 1/3 — Написание мини-фреймворка
Пишем игры на C++, Часть 2/3 — State-based программирование

Здравствуй!

Наконец-то мы будем писать игры! Это заключительная часть из цикла уроков

О чем эта часть?

  • Напишем несколько довольно известных игр

Какие именно игры?

  • Крестики-нолики
  • Змейка (возможно)
  • Сапер (возможно)

Исходники и .exe будут представлены в конце статьи

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js