Собираете эдак вы значит какой-нибудь архи-важный проект. Витаете где-то в высоких абстракциях. А то и озадачиваетесь вопросами бизнес-логики. И тут билд валится. С формулировкой: error LNK2005: some_func already defined in some_file.obj или some_file.cpp: multiple definition of some_func(). Вполне может быть, что эту самую функцию some_func() вы лично и в глаза то не видели, и не …
Tag: программирование
Aug 06
ostringstream – как на c++ число в строку перевести
Навязший уже на устах вопрос на собеседованиях – как на крестах целое число перевести в строку. Многие начинают вспоминать старые добрые sprintf, itoa. Cпору нет, с некоторыми оговорками их вполне можно использовать для представления целых и не очень чисел в виде массива символов. Но если мы говорим о c++ (именно что си с плюсами) – …
Aug 03
CUDA+Visual Studio-NVidea NSight
…Обыденный при-дедлайновый раш. Лица с ярко выраженными следами напряженных раздумий. Все вокруг словно наэлектрилизовано, но при этом чувствуется легкий привкус надежды на светлое будущее. Тем более вроде бы удалось распараллелить алгоритм на CUDA, осталось все это собрать да слинковать… Итак, вводные: некоторый модуль надо быстро-быстро собрать на студии (Visual Studio 10 Prof если быть точным). …
Jul 13
Как работает Kinect Fusion
Описание алгоритма Kinect Fusion На основе анализа кадров глубины, получаемых с сенсора Kinect (или аналогов) формируется детализированное 3D-представление обозреваемой сцены. Данные обрабатываются в реальном режиме. Высокая скорость и детализация достигается за счет использования для всех расчетов GPU, а также новаторским подходом к применению уже известных алгоритмов. В открытой реализации данного проекта в рамках библиотеке PCL …
Apr 03
pure c – как получить список сетевых интерфейсов
На линуксах. С помощью getifaddrs. Не забыть освобождать память под ifaddrs. Эта функция просто выводит айпи адреса сетевых интерфейсов. Если необходимо получить стастику – надо работать с адресами семейства AF_PACKET.
Mar 30
pure c – как измерить время
Простой снипет на сях для подсчета секунд между двумя замерами: Как мы помним, структура timeval имеет вот такой простецкий вид: а потому в коде добавляем такие строчки: В случае необходимости большей точности имеет смысл учитывать также значение tv_usec из структуры timeval. Ссылки для развития кругозора: 1. Полезнейшие но не особо известные утилиты из sys/time.h (timeradd,timersub,timercmp,…): …
Mar 16
Back to pure C – как распарсить строку без регэкспов
Надо парсить строку. Хочется регеэкспов от Posix – но никто не обещает posix-совместимых систем. Проект сишный и плюшки C++ как то не уместны, потому же boost – нельзя. И вообще с учетом закостенелости процесса развертывания – сторонние либы включать адски не желательно. Под такие ограничения прекрасно подходит функция strtok из ANSI C. Нижеуказанный сниппет производит …
Mar 04
Андроид – создание Custom ListView
Рано или поздно приходит момент, когда набор стандартных виджетов становится тесен. Хочется добавить к базовым возможностям контролов дополнительные опции, способные обогатить интерфейс и улучшить пресловутый UX(User experience). Все что необходимо для расширения функциональности виджетов – немного покопаться в документации. В данном посте описываются основы создания вашего собственного расширенного ListView. Следуя описанному здесь приему вы легко …
Mar 01
Back to pure C – bits hacks
ООП, паттерны, MVC… Программирование эволюционирует семимильными шагами – если пять лет назад на собеседованиях модно было спрашивать про виртуальные конструкторы да множественное наследование в C++, то теперь разговор с кандидатом частенько переходит в околофилософское русло с обсуждением преимуществ тех или иных парадигм программирования или обоснованием порочности безоглядного применения паттернов. И как то подзабывается то, с …
Mar 01
gcc – как скрывать warnings
Собираете какой-то легаси код? В глазах пестрит от белебреды вроде “warning: format ‘%d’ expects type ‘int’, but argument 5 has type ‘size_t” и неудобно отыскивать сообщения о причинах порушеной сборки? Добавьте в скрипт сборки цель check_integrity, где собираете все обычные цели добавив к флагам gcc ключик -w тогда все тревоги мнительного компилятора будут скрыты и …