Метка «c++» - 62

В руководстве по Prism можно найти небольшое упоминание о том, как обрабатывать запрос на взаимодействие с пользователем с помощью класса InteractionRequest. Напомню, о чём там шла речь:

Использование объектов запроса на взаимодействие

Один из подходов к осуществлению взаимодействия с пользователем при использовании шаблона MVVM — позволить модели представления посылать запрос на взаимодействие непосредственно в представление. Это можно осуществить с помощью объекта запроса взаимодействия (interaction request), сопряжённого с поведением в представлении. Объект запроса содержит детали запроса на взаимодействие, а также делегат обратного вызова, вызываемый при закрытии диалога. Также, данный объект содержит событие, сообщающее о начале взаимодействия. Представление подписывается на это событие для получения команды начала взаимодействия с пользователем. Представление обычно содержит в себе внешний облик данного взаимодействия и поведение (behavior), которое связано с объектом запроса, предоставленным моделью представления.

Использование объекта взаимодействия запрос для взаимодействия с пользователем

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

Полагаю, что многие пришедшие в славный мир .NET из славного мира С++ прекрасно помнят, как им приходилось буквально впиваться в стандарт, чтобы разобраться, почему язык ведет себя именно так, а не иначе. Многие вещи, которые казались им совершенно очевидны, при ближайшем рассмотрении оказались не то, что неочевидны — а просто-таки прямо противоположны здравому смыслу, на который мы все привыкли полагаться.

Впрочем, вероятнее всего, это проблема многих языков программирования. Многие, думаю, помнят известный ролик WAT, посвященный проблемам некоторых «очевидностей» языков JavaScript и Ruby. Логика привычного мира выходит покурить тогда, когда появляются пограничные области — те, в которые нормальные люди не лазят.

Впрочем, я предлагаю несколько отвлечься от этих высоких материй и взглянуть на язык C# несколько с другой, непривычной стороны. А именно посмотреть некоторые конструкции, которые, с одной стороны, совершенно понятны и легко описываются в терминах языка, а с другой — совершенно отказываются компилироваться.

Я даже не собираюсь спорить с тем, должны ли они компилироваться и работать. Я просто еще раз в очередной раз напомню, что все то, что для нас «логично и понятно» на самом деле может быть совершенно нелогично и непонятно.

И, да — я не буду в очередной раз ныть на тему того, что хотелось бы вернуть из функции тупл без использования громоздких структур и получить имя переменной с помощью простого оператора. Это не сюда — это к Майкрософту в фич-реквесты. У нас пятиминутка юмора. Итак, все то, что вы ежедневно хотите написать, но не пишете, потому что знаете — оно не скомпилируется. Поехали!
Читать полностью »

Мы с Vass записали и выложили первую серию второго сезона подкаста «Заметки о Qt».
Подкаст «Заметки о Qt» s02e01
Сам подкаст на rpod.ru — qt-notes.rpod.ru/284337.html
Теперь с конкурсом!
Читать полностью »

Как я изобретал велосипед, изучая технологииНеоднократно слышал утверждение, что язык программирования изучать лучше всего в процессе создания чего-либо. Не мог с этим не согласиться, и решил, что это распространяется не только на язык, но и на всякие технологии сосуществующие с этим языком.
Протаптывать неизведанную дорожку самому непросто, гораздо легче изучить, как кто-то протаптывает эту дорожку перед тобой. К изучению документаций у меня не лежит душа, ей я пользуюсь как справочником, а изучать что то с нуля отнимает слишком много времени и сил, так как авторы оной обычно предполагают, что у читателя знания обширнее, практически все что нужно он уже знает. Велосипедные темы же освещают именно процесс обучения, хождение по граблям и все прочее. К сожалению, на интересные мне темы достаточно подробных статей не нашел, изучал урывками, и решил все-таки написать статью сам, в надежде упростить жизнь тем, кто может пойти следом.
Читать полностью »

Речь пойдет о новом типе приложений, которые предназначены для новой операционной системы Windows 8 и нового меню “Пуск”.

О некоторых особенностях Windows 8 и WinRT(метро) приложений

Хочу сразу отметить, что несмотря на все написанное ниже — технология мне понравилась, однако традиционный подход Microsoft — “сделать все хорошо, но что-нибудь наиболее часто используемое — плохо” — тут наблюдается во всей красе.

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

Во-первых, что понимать под надежностью применительно к программам? Понятие надежности изначально было исключительно инженерным. Согласно определению из Wiki, надежность – это свойство объекта сохранять работоспособное состояние в течение некоторого времени. Под «объектом» здесь понимается некая физическая система. И, как правило, чем сложнее эта система, те есть, чем большее количество элементов в нее входит, тем менее она надежна, поскольку вероятность отказа системы равна произведению вероятностей отказа ее частей (грубое приближение, если не учитывать дублирования и разной степени критичности компонентов). То же самое вполне применимо и к программным системам – чем сложнее программа, тем больше количество ошибок в ней. Однако между физическими системами и программными есть одно принципиальное различие.
Читать полностью »

В статье habrahabr.ru/post/151544/ и комментариях к ней возник вопрос, почему разные компиляторы выдают код не только разного размера, но и разной эффективности. Если с первым фактором еще можно мириться, то второй может свести все ваши усилия в написании программы на нет. Это на PC еще можно добавить памяти до 32 Гб и поставить 16 ядерный процессор на 10 ГГц, чтобы косынка на NET8.0 не тормозила, а embedded система — девица более изысканная и утонченная.
Итак, сравниваем компиляторы:
1. BASCOM-AVR
2. Wiring
3. С CodeVisionAVR.
Читать полностью »

В статье habrahabr.ru/post/151544/ и комментариях к ней возник вопрос, почему разные компиляторы выдают код не только разного размера, но и разной эффективности. Если с первым фактором еще можно мириться, то второй может свести все ваши усилия в написании программы на нет. Это на PC еще можно добавить памяти до 32 Гб и поставить 16 ядерный процессор на 10 ГГц, чтобы косынка на NET8.0 не тормозила, а embedded система — девица более изысканная и утонченная.
Итак, сравниваем компиляторы:
1. BASCOM-AVR
2. Wiring
3. С CodeVisionAVR.
Читать полностью »

Всем доброго времени суток.

Придумано и написоно под влиянием некоторых публикаций Страуструпа на тему концептов в C++.
Захотелось мне однажды необычного — сделать так, чтобы нешаблонные функции/методы на C++ могли принимать в качестве аргумента любой объект, имеющий определенный набор методов, примерно так:

void fn(VectorWrapper<int> x)
{
    for (size_t i = 0; i < x.size(); ++i)
    {
        doSomething(x[i]);
    }
}

::std::vector<int> sv;
QList<int> qv;
OtherSuperVector<int> ov;

fn(sv);
fn(qv);
fn(ov);

Причем сделать это не используя наследование от базового класса.
Как это можно сделать, читайте под катом.
Читать полностью »

В предыдущей части мы рассматривали как получить доступ к файловому хранилищу приложения. Так как есть прямой доступ к файловому хранилищу, мы можем воспользоваться практически любой встраиваемой БД. На сегодняшний день SQLite, пожалуй, является самой популярной кроссплатформенной встраиваемой базой данных. В связи с этим при портировании приложений скорее всего придется работать с SQLite, работу с которым будем рассматривать далее.

В целом статья получилось больше похожей на инструкцию по установке и работе SQL Lite.

В статье будет описано
Установка расширения для сутдии.
Добавление SQLite в проект
Добавление провайдера sqlite-net
Работа с БД через linq провайдер (в стиле LinqToSql, EF)
Работа с БД через SQL запросы (в стиле ADO.NET)
Читать полностью »


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