-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в teal

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 19.04.2006
Записей:
Комментариев:
Написано: 2583


Приплюснул

Вторник, 15 Мая 2007 г. 17:07 + в цитатник
Обобщенное высокоуровневое программирование используя шаблоны + низкоуровневый код на ассемблере. Жуткая смесь.

Оператор функтора производит малозатратный (10-50 раз быстрее классических мьютексов) контроль блокировки по условию с учетом многопроцессорной платформы (для семейства x86) и возвращает интеллектуальный указатель на гарантированно свободного контент-провайдера (в данном случае по совместительству еще и абстрактной фабрики классов) от переданной пары ключ-значение из любого именованного контейнера.

template
<
   
typename MessageApplicator,
    typename Value
>
typename MessageApplicator::template
    container_lock_wrapper<ContentProvider<Value> >
operator()(
const std::pair<MessageApplicator, Value>& pair)
{
    int* pw(&pair.first.index());
    asm
    {
        mov esi, [pw]
        mov eax, dword ptr [esi]
    L0:
        test eax, eax
        je L1
        mov ebx, eax
        inc ebx
        lock cmpxchg dword ptr [esi], ebx
        jne L0
    L1:
    }
    return ContentProvider<Value>(pair.second);
}

Конечно, пример я придумал чисто для прикола. Но контраст выглядит настолько сильно, что смотреть без гордости за С++ нет возможности =)
Метки:  

Such_A_Good_Guy   обратиться по имени Четверг, 17 Мая 2007 г. 16:40 (ссылка)
Твой "прикольный" пример может привести к короткому замыканию транзисторов мозга читателя :)
Ответить С цитатой В цитатник
teal   обратиться по имени Четверг, 17 Мая 2007 г. 17:22 (ссылка)
Естественно, программа же для x86, а не для чего-то еще. А что, замкнуло, да? На какой строчке? =)
Ответить С цитатой В цитатник
Such_A_Good_Guy   обратиться по имени Вторник, 22 Мая 2007 г. 15:58 (ссылка)
На первой: "Обобщенное высокоуровневое программирование..."
Ответить С цитатой В цитатник
Комментировать К дневнику Страницы: [1] [Новые]
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку