19.03.2003
Делегаты на C++
|
|
Аннотация: Делегаты в CLR удобны, типобезопасны и эффективны. Последнее время на форумах RSDN часто поднимается вопрос о том, можно ли реализовать делегаты с аналогичными свойствами, оставаясь в рамках "чистого" C++. Оказывается, это вполне возможно. В этой статье я покажу, как это сделать.
Ключевые слова: delegates |
30.11.2003
C++: метаданные своими руками
|
|
Аннотация: В статье рассмотрен декларативный подход к решению задачи чтения/записи XML-файлов из программ на классическом C++. Метод основан на построении специальной структуры статических данных - метаданных типов.
Ключевые слова: xml |
23.05.2006
Ещё один подход к сериализации на С++
|
|
Аннотация: “Вопросы сохранения данных из объектов, так или иначе, возникают у каждого разработчика”. Именно с этой фразы я начал первую статью посвещённую сериализации, и с этой фразы мне бы хотелось продолжить описание идеи использования карт для организации сериализации.
Если вы пишете на С++, то ваша программа скорее всего состоит из объектов классов, которые в своей совокупности образуют некую систему данных и кода, работающего с этими данныим. И практически всегда вы хотите в какой-то момент сохранить в том или ином виде эти данные – будь то результат многолетних вычислений программы или просто текущее состояние каких-то компонентов системы. А потом снова загрузить эти данные назад, в вашу программу, как будто бы и ничего не происходило. Или искажем отправить эти данные по сети, другой программе. И при этом, очень нехочетатся трартить много времени на программирование сохранения/загрузки, упаковку стрктур в каки-то изобретённые сегодня утром форматы, отладку всего этого, модификацию в связи с появлением в структурах данных новых полей, документирование, и прочую головную боль.
Подход, описаный ниже, я надеюсь, поможет многим сэкономить время и облегчить жизнь.
Ключевые слова: Serialization |
22.05.2005
Использование метаданных в программах на языке C++
|
|
Аннотация: Цель данной статьи - показать, что метаданные это мощный механизм, требующий выделения в отдельный компонент, который хотелось бы видеть в стандартной библиотеке С++.
Ключевые слова: metadata |
01.12.2001
Как вставлять в программу на C++ двоичные константы?
|
|
Аннотация: В языке C++ есть восьмеричные, десятичные и шестнадцатеричные константы. А двоичных - нет. Тем не менее, при помощи препроцессора можно соорудить макрос, который позволит нам смоделировать такие константы. Основная идея - преобразовывать восьмеричную константу в двоичную, выделяя из неё отдельные ци...
Ключевые слова: |
19.07.2003
Мультиметоды и С++
|
|
Аннотация: Мультиметоды - виртуальные функции, принадлежащие сразу нескольким классам. В статье разбирается суть мультиметодов, их особенности, а также возможная реализация мультиметодов на C++.
Ключевые слова: Мультиметоды, multimethods |
10.03.2010
О lock-free алгоритмах (+бонус)
|
|
Аннотация: [пост получился достаточно длинный, поэтому сразу скажу о бонусе — это простой и эффективный алгоритм очереди на основе буфера фиксированного размера — нетерпеливые могут сразу перемещаться к концу поста <img border='0' width='15' height='15' src='../Forum/images/smile.gif' /> ]<br />
<br />
Последние дни на RSDN шла своего рода распределенная игра по написанию lock-free контейн...
Ключевые слова: |
29.01.2003
Обработка событий в С++
|
|
Аннотация: Демонстрационный проект - events.zip
Ключевые слова: |
20.03.2005
Реализация отложенной загрузки библиотек на С++
|
|
Аннотация: В данной статье описывается способ реализации отложенной загрузки динамических библиотек на С++ без использования механизма delayload, приведена реализация библиотеки отложенной загрузки и пример ее использования.
Ключевые слова: DelayLoad |
18.11.2002
Реализация сборки мусора на С++
|
|
Аннотация: В данной статье мы рассмотрим обобщённую реализацию сборки мусора на С++. Будут обсуждены два конкретных алгоритма сборки мусора – “Mark-Sweep” и “Mark-Compact”, и их реализация. Мы также рассмотрим ограничения, которые накладываются на приложения при использовании сборки мусора, и изменения в компи...
Ключевые слова: |
Свойства в С++
|
|
Аннотация:
В этой статье автор рассматривает различные способы реализации свойств в
стиле Visual Basic на C++. Некоторые способы специфичны для Visual C++,
тогда как другие годятся для применения в любой программе, написанной на
языке C++.
Ключевые слова: |
05.03.2003
Симуляция частичной специализации
|
|
Аннотация: Время от времени при работе с шаблонами возникает необходимость специализировать шаблон класса по одному из аргументов. В качестве примера можно рассмотреть шаблон классов матриц, параметризованный типом элемента и размерами матрицы. Однако некоторые компиляторы не поддерживают частичную специализацию, и, как следствие, «не понимают» подобные конструкции. Желание получить эквивалентную функциональность при работе с такими компиляторами приводит к технике, описанной ниже.
Ключевые слова: |
19.03.2004
Симуляция блока try-finally для С++
|
|
Аннотация: В некоторых языках программирования существует конструкция вида try-finally, в которой секция finally выполнялась обязательно, как при возникновении исключений, так и при нормальном ходе выполнения программы. Поскольку в языке C++ такой конструкции явно не присутствует, мы можем попытаться описать её самостоятельно, прибегая к помощи макропрепроцессора.
Ключевые слова: try-finally |
13.07.2010
Строгие перечисления в С++
|
|
Аннотация: В данной статье рассмотрены несколько решений, позволяющих ослабить или практически полностью избавиться от недостатков перечислений (enumerations) языка программирования С++. Представленные решения, отличаются сложностью реализации и функциональностью, и могут оказаться полезными в арсенале каждого современного разработчика.
Ключевые слова: С++; перечисления; кодогенерация; метапрограммирование; типобезопасность; |
27.07.2005
Указатели на функции-члены и реализация самых быстрых делегатов на С++.
|
|
Аннотация: В данной статье предоставлен исчерпывающий материал по указателям на функции-члены, а также приведена реализация делегатов, которые занимают всего две операции на ассемблере.
Ключевые слова: Делегаты, указатели, функции-члены |