Форум программистов, компьютерный форум, киберфорум
castaway
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Старый
C++ - простой трюк с сортировкой по нескольким целочисленным полям
Запись от castaway размещена 22.10.2015 в 19:51
Показов 285 Комментарии 2

Суть приёма заключается в том, что можно отсортировать содержимое контейнера по нескольким целочисленным полям за одно сравнение используя объединение (union).
Трюк конечно старый, но и не всем знаком.
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdio>
#include <ctime>
#include <cstdint>
 
#include <vector>
#include <algorithm>
 
union A {
    struct {
        int16_t x;
        int16_t y;
    };
    uint32_t    xy;
...
Старый
C++ - GCC - возможные ошибки компиляции
Запись от castaway размещена 12.10.2015 в 21:07
Показов 135 Комментарии 0

Все примеры ошибок представлены в виде полных программ.
error: there are no arguments to 'foo' that depend on a template parameter, ...
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
struct base {
    void foo() {}
};
 
template <typename BaseType>
struct derived : BaseType {
    void bar() {
        foo();          // ошибка
        this->foo();    // решение
    }
};
 
int main() {}


В разработке...
Старый
C++ - WinAPI - Простой таймер высокого разрешения
Запись от castaway размещена 24.07.2015 в 12:59
Показов 401 Комментарии 2
Метки c++, timer, winapi

Код с примером
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <cstdio>
#include <cstdint>
#include <cmath>
 
class hr_timer {
    double  m_resolution;
 
public:
    hr_timer() {
        uint64_t frequency;
        QueryPerformanceFrequency( (LARGE_INTEGER *)&frequency );
        m_resolution = 1e6 / float(frequency);
    }
 
    void wait( uint64_t us /* microseconds */ ) {
        if ( us ) {
...
Старый
Рейтинг: 4.00. Голосов: 1.
C++ - WinAPI - IP Sniffer
Запись от castaway размещена 20.07.2015 в 21:24
Показов 457 Комментарии 2
Метки c++, network, sniffer, winapi

Простой IP сниффер на WinAPI.
Кликните здесь для просмотра всего текста
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#include <mstcpip.h>
 
#include <cstdio>
#include <cstdint>
#include <cctype>
#include <string>
#include <map>
 
///
/// [url]https://en.wikipedia.org/wiki/IPv4[/url]
///
struct ip_header {
    uint8_t     ver_ihl;
    uint8_t     dscp_ecn;
    uint16_t    len;
...
Старый
C++ - OpenGL - точечный шрифт и форматированный вывод
Запись от castaway размещена 22.01.2015 в 19:56
Показов 1647 Комментарии 0

Изредка замечаю, что люди ищут способ выводить текст по средствам OpenGL и у них с этим возникают проблемы.
Представляю простой класс для вывода текста точечным моноширным шрифтом в OpenGL.

Описание класса:
В конструкторе задаются межсимвольный и междустрочный интервалы...
Миниатюры
Нажмите на изображение для увеличения
Название: gl_fixed_font.png
Просмотров: 183
Размер:	56.0 Кб
ID:	3004  
Старый
Простой пример непростого FFMPEG - декодируем видео
Запись от castaway размещена 16.11.2014 в 22:08
Показов 1670 Комментарии 0
Метки c++, decoding, ffmpeg, mingw, video

Всё как обычно:
* компилятор MinGW 4.8.2 от niXman
* комментарии излишни
* простой класс - "обёртка" Си-интерфейса FFMPEG
* клавиши "вверх" и "вниз" - уменьшают и увеличивают задержку при проигрывании
* файл для проигрывания передаётся в качестве первого параметра командной строки

FFMPEG для Windows: http://ffmpeg.zeranoe.com/builds/

Нас интересуют только два файла:
ffmpeg-20141111-git-2c0bf76-win32-shared.7z...
Старый
libx265 - кодируем видео в самом современном формате
Запись от castaway размещена 14.11.2014 в 21:14
Показов 1497 Комментарии 2

В данной статье я опишу простой пример использования библиотеки libx265, которая является реализацией нового стандарта кодирования видео H265/HEVC, пришедшему на замену "относительно" старого H264.
Я приведу простейший пример использования библиотеки libx265, остальные возможности...
Миниатюры
Нажмите на изображение для увеличения
Название: libx265_wrapper_test.png
Просмотров: 100
Размер:	9.1 Кб
ID:	2840  
Старый
Рейтинг: 5.00. Голосов: 1.
ОС на C++? Легко! Ну или почти легко...
Запись от castaway размещена 08.11.2014 в 18:12
Показов 6547 Комментарии 54
Метки os, ос

Время от времени на форуме появляются люди, которые считают что написать собственную ОС очень просто, это не так, знаете ли, на самом деле всё гораздо проще.
Я пока не буду говорить где в моих словах был сарказм, оставим это "на потом"..

Итак, какие цели я преследовал:...
Миниатюры
Нажмите на изображение для увеличения
Название: QEMU-OS.png
Просмотров: 178
Размер:	9.3 Кб
ID:	2828  
Вложения
Тип файла: 7z OS.7z (53.6 Кб, 94 просмотров)
Старый
Упрощенная реализация boost::any
Запись от castaway размещена 24.10.2014 в 15:29
Показов 1465 Комментарии 0

Попытка упрощения реализации boost::any без использования исключений и стандарта C++11.
Оставлена лишь минимальная функциональность.
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <vector>
#include <typeinfo>
 
template <typename T> struct rem_ref      { typedef T type; };
template <typename T> struct rem_ref<T &> { typedef T type; };
 
struct any {
    any() : m_content( 0 ) {}
 
    template <typename T>
...
Старый
Рейтинг: 5.00. Голосов: 1.
GCC: parallel extension
Запись от castaway размещена 24.02.2014 в 21:05
Показов 754 Комментарии 0

На днях я открыл для себя нечто новое, а именно расширение компилятора GCC - parallel. Для меня оно работает начиная с версии 4.7.3 и выше.
Это расширение позволяет в автоматическом режиме "распараллеливать" многие (если на данный момент не все) алгоритмы стандартных библиотек numeric и algorithm посредствам OpenMP (компилятор должен быть собран с поддержкой posix-threads).

Из numeric это:
C++ Скопировано
1
2
3
std::accumulate
std::adjacent_difference
std::inner_product
...
Новые блоги и статьи
Как использовать Behavior Graph в Unity при создании игрового AI
GameUnited 14.04.2025
Искусственный интеллект в играх прошел долгий путь эволюции. От простейших алгоритмов, движущих призраками в Pac-Man, до сложных систем, управляющих поведением персонажей в современных AAA-проектах. . . .
Создание и стилизация списков в SwiftUI
mobDevWorks 14.04.2025
Списки — фундаментальный элемент мобильных интерфейсов. От списка контактов до ленты новостей, от настроек до каталога товаров — трудно представить приложение, которое не использовало бы этот. . .
Паттерн SAGA и распределённые транзакции в микросервисной архитектуре
stackOverflow 14.04.2025
Переход от монолитной архитектуры к микросервисам принес множество преимуществ: гибкость разработки, независимость развертывания и масштабирования отдельных компонентов. Однако этот переход создал и. . .
Кастомные аллокаторы в C++ и оптимизация управления памятью
bytestream 14.04.2025
Работа с памятью в С++ всегда была и остаётся одной из самых увлекательных и сложных задач для программиста. Любой опытный C++ разработчик подтвердит: стандартные механизмы аллокации памяти – штука. . .
Организация сетей в Kubernetes и эффективное развертывание
Mr. Docker 14.04.2025
Сетевая инфраструктура Kubernetes представляет собой сложную, но хорошо спроектированную систему, которая позволяет контейнерам взаимодействовать между собой и с внешним миром. За кажущейся простотой. . .
Многопоточность в Rust: Fearless concurrency и практические примеры
golander 14.04.2025
Многопоточное программирование связано с рядом известных проблем. Наиболее распространенные из них — гонки данных (data races), взаимные блокировки (deadlocks) и условия гонки (race conditions). Эти. . .
Списки и кортежи в Python: различия, особенности, применение
py-thonny 13.04.2025
Python славится своей гибкостью при работе с данными. В арсенале языка есть две основные последовательные структуры данных, которые программисты используют ежедневно — списки и кортежи. Эти структуры. . .
Middleware в ASP.NET Core
UnmanagedCoder 13.04.2025
В ASP. NET Core термин "middleware" занимает особое место. Что же это такое? Middleware представляет собой программные компоненты, которые формируют конвейер обработки HTTP-запросов в приложении. . . .
Таблицы лута в Unity с MinMaxCurve и AnimationCurve
GameUnited 12.04.2025
Создание сбалансированного лута в играх — задача не из простых. Разработчики постоянно ищут способы настройки систем выпадения предметов, которые будут одновременно справедливыми для игроков и. . .
std::expected в C++: Управление ошибками
bytestream 12.04.2025
Обработка ошибок всегда была важной и одновременно сложной задачей в программировании на C++. На протяжении долгого времени разработчики использовали различные подходы: возвращаемые коды ошибок,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер