Статья для тех, кому интересна реализация библиотеки boolinq из предыдущего моего поста. В этой статье я копну в исходники и покажу несколько интересных приёмов, которые позволили сделать библиотеку «ленивой» и расширяемой.
Рубрика «c++» - 264
Внутренность boolinq для взрослых
2012-04-23 в 16:33, admin, рубрики: c++, iterator, range, Программирование, метки: c++, iterator, rangeLINQ to Entities на языке C++
2012-04-23 в 12:04, admin, рубрики: .net, c++, linq, Программирование, метки: .net, c++, linqВсё началось с того, что я в институте и после его окончания писал код на C++ и не знал бед. Но тут в один прекрасный день пришлось писать код под .NET на C#. Сперва немного поплевался, но потом ничего — втянулся. Увидел выгодные отличия от C++: безопасность, строгость и т.д. Также не смог обойти стороной LINQ при работе с коллекциями…
LINQ to Objects на языке C++
2012-04-23 в 12:04, admin, рубрики: .net, c++, linq, Программирование, метки: .net, c++, linqВсё началось с того, что я в институте и после его окончания писал код на C++ и не знал бед. Но тут в один прекрасный день пришлось писать код под .NET на C#. Сперва немного поплевался, но потом ничего — втянулся. Увидел выгодные отличия от C++: безопасность, строгость и т.д. Также не смог обойти стороной LINQ при работе с коллекциями…
Итак, вы решили запретить копирование объектов класса в C++
2012-04-23 в 11:54, admin, рубрики: c++, Блог компании ABBYY, ошибки в коде, метки: c++, ошибки в коде Довольно часто можно встретить код на C++, в котором у одного или нескольких классов конструктор копирования и оператор присваивания объявлены private и написан комментарий вида «копирование запрещено».
Прием простой и с виду очевидный, тем не менее, при его использовании возможны подводные камни, приводящие к ошибкам, которые проявятся нескоро и поиск которых может занять не один день.
Рассмотрим возможные проблемы.
Читать полностью »
Wt, библиотека C++ для разработки веб-приложений
2012-04-23 в 8:38, admin, рубрики: ajax, c++, Веб-разработка, веб-сервер, метки: ajax, c++, Веб-разработка, веб-серверВсем привет!
Так случилось, что на Хабре не было ни одного упоминания Wt, C++ Web Toolkit, кроме одного комментария.
Библиотека Wt может заинтересовать тех, кто пишет на C++ и захотел посмотреть в сторону Web, но не хочет изучать и/или использовать HTML, CSS, JavaScript, SQL и дополнительные технологии, связанные с веб-разработкой и работой с БД. В данной статье моей целью было обратить внимание сообщества на Wt, а не освещать все его возможности.
Читать полностью »
CXXI: Мост между мирами C# и C++
2012-04-23 в 7:39, admin, рубрики: c++, Mono, Mono и Moonlight, where is your c++/cli now?В рантайме Mono есть немало средств для взаимодействия с кодом на не .NET языках, но никогда не было ничего вменяемого для взаимодействия с кодом на C++.
Но это вскоре изменится благодаря работе Алекса Коррадо, Андрэа Гайта и Зольтана Варга.
Вкратце, новая технология позволяет разработчикам C#/.NET:
- Легко и прозрачно использовать классы C++ из C# или любого иного .NET языка
- Создавать экземпляры классов C++ из C#
- Вызывать методы классов C++ из кода на C#
- Вызывать инлайн-методы C++ из кода на C# (при условии, что библиотека скомпилирована с флагом -fkeep-inline-functions или если вы скомпилируете дополнительную библиотеку с их реализациями)
- Наследовать классы C++ из C#
- Переопределять виртуальные методы классов C++ методами на C#
- Использовать экземпляры таких смешанных C++/C# классов как в коде на C#, так и в коде на C++
Подкаст «Заметки о Qt» s01e02
2012-04-21 в 21:21, admin, рубрики: c++, cordova, QML, qt, qt components, qt quick, Qt Software, qt5, Raspberry Pi, подкасты, Программирование, статистика, метки: c++, cordova, QML, Qt, qt components, qt quick, qt5, Raspberry Pi, подкасты, статистика Мы с Vass записали и выложили вторую серию подкаста «Заметки о Qt».
Сам подкаст на rpod.ru — qt-notes.rpod.ru/273862.html
Читать полностью »
Самый правильный безопасный printf
2012-04-21 в 11:25, admin, рубрики: c++, c++11, constexpr, static_assert, user-defined literals, variadic templates, метки: c++11, constexpr, static_assert, user-defined literals, variadic templatesПод катом Вас ждет увлекательная история о том, как я сильно расстроился, познакомившись поближе с пользовательскими литералами (с нового стандарта), но при этом в последствии все же реализовал вышеупомянутую функцию, а также разобрался с constexpr, а позже еще и реабилитировал те самые литералы.Читать полностью »
Давайте сделаем паузу. Способ улучшения синхронизации потоков
2012-04-20 в 12:14, admin, рубрики: c++, openmp, VTune Amplifier XE, Блог компании Intel, метки: openmp, VTune Amplifier XE
Пауза — временное молчание, перерыв в звучании музыкального произведения в целом или какой-либо его части или отдельного голоса.
[Википедия]
Удивительно, но иногда так бывает, чтобы что-то сделать вцелом быстрее, надо это делать медленнее или вообще с паузами. Например, при имплементации активного ожидания spin-wait в многопотоковом коде рекомендуется использовать инструкцию pause, которая, как утверждает Intel Instruction Set Reference, делает это ожидание наиболее эффективным. «Какая чушь!» — скажете вы. Как может быть ожидание эффективным? Разработчики микропроцессоров утверждают, что при активном ожидании с инструкцией pause чип потребляет намного меньше энегии еще со времен Pentium 4. В чем еще может быть эффективность ожидания? Поговорим об этом ниже.
Читать полностью »
Что общего у статического анализа и поисковиков? Хороший «top»!
2012-04-18 в 7:48, admin, рубрики: c++, pvs-studio, Программирование, разработка, статический анализ, статический анализ кода, метки: pvs-studio, статический анализ, статический анализ кодаРазработчики поисковиков типа Google/Яндекс и разработчики инструментов статического анализа кода решают в каком-то смысле очень похожую задачу. И те, и другие должны предоставить пользователю некоторую выборку с ресурсами, которые «отвечают» желаниям пользователя. Нет, конечно, в идеале разработчики поисковиков хотели бы ограничиться кнопкой «Мне повезет!» (I'm Feeling Lucky). А разработчики инструментов анализа кода хотят выдавать только список реальных ошибок в коде. Но реальность как всегда накладывает ограничения. Хотите узнать, как мы сражаемся с жестокой реальностью при разработке PVS-Studio?