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

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

Итак, вернемся к теме поста. Я давно хотел немного больше узнать о комплексных числах, а не только то, что корень из минус единицы равен i. Особенно вызывали интерес фигуры имеющие фрактальную структуру, хотелось понять, что это значит, и как сделать такую визуализацию. Где то на полке стояла книжка по ТФКП, а так же закончился курс по комплексному анализу на курсере, и появилось немного свободного от работы времени. Приступим.

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

в 5:58, , рубрики: c++, c++11, C++14, метки: , ,

Новый стандарт языка принят относительно давно и сейчас уже, наверное, нет программиста, который не слышал о новых ключевых словах auto и decltype. Но как почти с любым аспектом С++, использование этих новых инструментов не обходится без нюансов. Некоторые из них я постараюсь осветить в этой статье.
Читать полностью »

в 18:25, , рубрики: .net, метки: ,

На конференции NDC 2013, недавно прошедшей в Лондоне, Мадс Торгерсен (Mads Torgersen), являющийся одним из разработчиков спецификации языка C#, рассказал в своём докладе “The Future of C#” о возможных нововведениях в нём.
Читать полностью »

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

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

Недавно разгребал папки на Dropbox и наткнулся на свои первые поделки. Когда делал первые шаги с микроконтроллерами, почти сразу меня стали посещать мысли и идеи об управлении моими поделками с ПК, либо каким-либо образом с этим самым ПК общаться. Это казалось увлекательным и «серьезным». Сейчас я стараюсь все сразу тестировать в железе, но в начале наступать на грабли и стрелять себе в ногу хотелось безболезненно и быстро. В этом мне неизменно помогал Proteus. Десятки раз пересобирая проекты было важно, чтобы можно было экспериментировать с комфортом, если так можно сказать. Это потом я уже купил фирменную отладку и что в Proteus, что в железе — все стало одинаково быстро.
В первую очередь мне хотелось попробовать UART и USB, а потом уже и Ethernet. Каждому желанию я придумывал свой «проект». Многие идеи так и остались в виде проекта для Proteus — идея надоедала сразу после реализации программной части.
Надеюсь, данный пост поможет всем, кто хотел попробовать сделать свое USB устройство или просто увидеть, что это все не так сложно; более того, мне хотелось, чтобы можно было попробовать сразу в симуляторе. Рассказать как новичок для новичка — чтобы захотелось открыть гугл и начать читать, чтобы сделать больше, узнать лучше.
Я не буду рассказывать о регистрах, режимах. Я сомневаюсь, что это поможет зажечь огонь в глазах. Возможно, кто-то захочет сделать что-то полезное для себя и у простых примеров больше шансов затянуть в это крайне увлекательное творчество (а для меня уже практически наркотик). А прежде чем бежать на ebay или начинать считать дни с момента отправки отладочной платы из Китая, можно попробовать свои силы в виртуальном микроконтроллере.
Я хотел бы попробовать сделать два своеобразных hello world проекта, которые, тем ни менее, не сильно сложнее стандартного LED blinking. Под катом много изображений.
Читать полностью »

в 6:21, , рубрики: c++, метки:

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

TLDR: как определять, есть ли в типе метод с данным именем и сигнатурой, а также узнавать другие свойства типов, не сойдя при этом с ума.

image

Здравствуйте, коллеги.
Хочу рассказать о SFINAE, интересном и очень полезном (к сожалению*) механизме языка C++, который, однако, может представляться неподготовленному человеку весьма мозгоразрывающим. В действительности принцип его использования достаточно прост и ясен, будучи сформулирован в виде нескольких чётких положений. Эта заметка рассчитана на читателей, обладающих базовыми знаниями о шаблонах в C++ и знакомых, хотя бы шапочно, с C++11.
* Почему к сожалению? Хотя использование SFINAE — интересный и красивый приём, переросший в широко используемую идиому языка, гораздо лучше было бы иметь средства, явно описывающие работу с типами.Читать полностью »

Даже не являясь навигатором, 2ГИС собирает и показывает информацию о пробках. Во-первых, это необходимо для построения оптимальных маршрутов, а во-вторых — такие данные очень нужны пользователям в больших городах.

В 2ГИС сервис пробок появился в сентябре 2011 года и сегодня работает в пяти городах (Новосибирск, Санкт-Петербург, Красноярск, Уфа, Казань). В планах на ближайшее будущее — запустить пробки во всех городах-миллионниках.

Под катом история про то, с какими проблемами мы столкнулись и как их решили.
Использование квадродеревьев при расчёте пробок 2ГИС
Читать полностью »

в 17:27, , рубрики: design patterns, метки: , ,

Вам дали задание написать программу на С, а вы уже забыли как может работать программа, в тексте которой нет ни одного слова class или virtual? Или может быть вы влюблены в простоту и строгость ANSI C, но иногда вам не хватает объектно-ориентированных свойств языков более высокого уровня? Или просто интересно взглянуть на старый добрый С с немного другой стороны? В любом случае в данной статье я покажу несколько простых приемов, с помощью которых на C вполне можно думать и писать объекто-ориентированно.
Читать полностью »

Классы типов на C++
Уже было описано как реализовать монады на C++ без классов типов. Я же хочу показать, как можно реализовать классы типов, использую в качестве примера монады.
Этот прием широко применяется в языке Scala, но может быть использован и в C++. Кратко я его описал в качестве иллюстрации трудностей унифицированного описания библиотек, сейчас же продемонстрирую его реализацию.
Нужно отметить что классы типов применяются не только в декларативных языках, как Haskell и Mercurry, но о нашли свое отражение в достаточно классических Go и Rust.
Этот прием так же подходит для реализации мультиметодов из Common Lisp и Clojure.

C++ я не брал в руки уже лет шесть, так что код может быть не идеоматичным и не использовать новые (полезные) фичи.
Кроме того, я полностью игнорирую проблему управления памятью — практикующие C++ справятся с этим лучше меня.
Работоспособность кода проверялась на gcc 4.7.3.

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


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