Size: a a a

Библиотека C/C++ разработчика

2019 November 03
Библиотека C/C++ разработчика
С-трюк: Расчет времени между событиями
Фрагмент кода для расчета времени, прошедшего между двумя событиями (к примеру, чтобы выяснить, сколько времени займет выполнение чего-либо).

#include "stdafx.h"
#include <time.h>
#include <windows.h>
#include <stdlib.h>
clock_t startm, stopm;
#define BEGIN if ( (startm = clock()) == -1) \
{ \
printf("clock returned error.");exit(1); \
} \
#define CLOSE if ( (stopm = clock()) == -1) \
{printf("clock returned error."); \
exit(1); \
} \
#define SHOWTIME printf( "%6.3f seconds elapsed.", ((double)stopm-startm)/CLOCKS_PER_SEC);



main() {
    BEGIN;
    // Specify set of instructions for you want to measure execution time
    Sleep(10);
    CLOSE;
    SHOWTIME;
}
источник
2019 November 04
Библиотека C/C++ разработчика
Что в классе? Принципы интерфейса
«Что в классе?» — очень неплохая статья Герба Саттера. Автор утверждает, что можно легко расширить любой класс с помощью простых функций.

Герб Саттер заключает, приводя читателя к трем мыслям:
- Принцип интерфейса: для класса X все функции, включая свободные, являются логически частью X, потому что они образуют часть интерфейса Х.

- Поэтому функции-члены и не члены могут быть логически частью класса. Однако функция-член все еще более тесно связана с классом, чем не член.

- Если функция появляется в том же заголовке, что и класс, она является частью класса с точки зрения зависимостей. Если функция появляется в том же пространстве имен, что и класс, она является частью класса с точки зрения использования объекта и поиска имени.
источник
2019 November 05
Библиотека C/C++ разработчика
Последнее и лучшее в Visual Studio 2019 для C++ разработчиков:
источник
2019 November 06
Библиотека C/C++ разработчика
Публикация диаграммы состояния функций, проблем и багов.👍
источник
Библиотека C/C++ разработчика
C++ Build Insights: новая коллекция инструментов для анализа и ускорения ваших сборок C++. В статье показана возможность самостоятельно вносить улучшения.
источник
2019 November 07
Библиотека C/C++ разработчика
Функция C++, возвращающая разные типы в зависимости от стороны вызова
"Вот что-то сумасшедшее: у вас есть функция, которая имеет два разных вызова. Один из них ожидает, что функция вернет widget. Другой ожидает, что функция вернет doodad". Автор статьи Раймонд показывает, как возвращать объект, который еще не знает, является ли он widget или doodad.
источник
Библиотека C/C++ разработчика
Онлайн-платформа goods открывает несколько вакансий на должности:

Frontend-разработчик
Backend-разработчик
Middle Android Developer
Golang Developer
Senior Golang Developer

Что мы предлагаем своим разработчикам маркетплейса? Комфортный офис в центре города, официальное оформление, высокую зарплату, премии и бонусы, бесплатные курсы, ДМС и годовые абонементы в фитнес-клубы.

Не упусти свой шанс! Пиши на почту: irina.andriyanova@goods.ru

Если не нашли себе подходящую вакансию - посетите нашу страницу с рассказом о компании, фотками из офиса и множеством других вакансий - https://prglb.ru/19g3e
источник
Библиотека C/C++ разработчика
Самые важные советы для начинающих разработчиков С++
Джон М. Длугош вводит «горячий список», основанный на фактическом коде, создаваемом командой, с которой он работает. Вместо полного руководства с подробными пояснениями, это краткий список того, на что следует обращать внимание, который постоянно обновляется на основе того, что автор видит в обзорах кода.
источник
2019 November 08
Библиотека C/C++ разработчика
Какой инструмент статического анализа кода лучше в C: Klocwork или Coverity?
У каждой системы есть свои плюсы и минусы. Спрашивая, что лучше Windows или Linux, к примеру, мнения явно разойдутся. Поскольку каждый современный коммерческий анализатор кода является достаточно эффективным с точки зрения обнаружения ошибок, скорее всего вы сделаете выбор, основываясь на удобстве этого инструмента для вашей команды.
источник
2019 November 09
Библиотека C/C++ разработчика
Коротко о stb

stb — это однофайловые общедоступные (или лицензированные MIT) библиотеки для C / C ++.

Включают:
- загрузчик изображений (JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC);
- средство записи изображений (PNG, TGA, BMP);
- изменение размера картинки;
- растеризатор текста шрифта;
- типизированные контейнеры.

Пример использования:
Как читать и записывать изображения с помощью библиотек stb_image, — пример, состоящий из двух частей: основного использования stb_image и написания оболочки вокруг функций stb_image.
источник
2019 November 10
Библиотека C/C++ разработчика
Хорошие инструменты для покрытия кода на С++
Coco — это многоязычный инструмент для покрытия кода. Автоматический инструментарий исходного кода используется для измерения охвата тестов операторов, ветвей и условий.

BullseyeCoverage — это усовершенствованный инструмент покрытия кода C ++, используемый для улучшения качества программного обеспечения.

Parasoft CPP test — хороший инструмент для различного анализа, включая покрытие кода и статический анализ.
источник
2019 November 11
Библиотека C/C++ разработчика
Что выведет этот код?

#include <iostream>  int main(int argc, char **argv) {     std::cout << 25u - 50;     return 0; }
Анонимный опрос
16%
-25
8%
25
76%
4294967271
Проголосовало: 1231
источник
Библиотека C/C++ разработчика
Ответ: 4294967271, предполагая 32-битные целые числа.
4294967271, предполагая 32-битные целые числа.
Почему так происходит?
Существует иерархия: long double, double, float, unsigned long int, long int, unsigned int, int. И когда два операнда определены как 25u (unsigned int) и 50 (int), 50 также будет интерпретироваться как беззнаковое целое число, то есть 50u.
Кроме того, результат операции также будет иметь тип операндов. Следовательно, результат 25u - 50u и сам является беззнаковым целым числом. Таким образом, результат -25 преобразуется в 4294967271.
источник
2019 November 12
Библиотека C/C++ разработчика
Виртуальный конструктор: что он собой представляет?
Анонимный опрос
9%
Специальный метод класса, который предназначен для инициализации элементов класса.
27%
Специальный метод класса, который обеспечивается инициализацию объекта производного класса.
64%
Ни одно из перечисленного не является верным.
Проголосовало: 1288
источник
Библиотека C/C++ разработчика
Ответ:
Каверзный вопрос с IT-собеседований, который чаще всего задают именно после виртуальных деструкторов, дабы сбить кандидата с толку. Конструктор не может быть виртуальным, поскольку в нем нет никакого смысла: при создании объектов нет такой неоднозначности, как при их удалении.
источник
2019 November 13
Библиотека C/C++ разработчика
C++17 STL Cookbook (2017)
Автор: Jacek Galowicz

#cpp #book #en

Язык: English.

Целевая аудитория: разработчики C++.

C ++ прошел большой путь. Быстрый, эффективный и гибкий, он используется для решения многих проблем. Если вы хотите понять практическую полезность C++ 17 STL для написания более умного, полностью переносимого кода, то эта книга для вас.

В книге рассматриваются следующие темы:
✔️ возможности C ++;
✔️ написание кода с помощью стандартной библиотеки (STL)
✔️ масштабы и возможности функций STL для решения реальных проблем;
✔️ составление собственных алгоритмов, не отказываясь от простоты и элегантности пути STL и др.

Преимущества:
➕ хорошее обсуждение текущего состояния стандартной библиотеки;
➕ отличные примеры;
➕ структурировано и понятно.

Недостатки:
➖ не обнаружено.
источник
Библиотека C/C++ разработчика
источник
2019 November 14
Библиотека C/C++ разработчика
Уроки по разработке 64-битных приложений на C / C++
Разработка 64-битных приложений на C и C++. Этот курс был разработан в 2010 году. Однако он не устарел, и приведенная в нем информация достаточно актуальна для современных версий Visual Studio.

Курс посвящен созданию 64-битных приложений на языке C / C++ и предназначен для разработчиков Windows, использующих среду Visual Studio 2005/2008/2010. Разработчики, работающие с другими 64-битными операционными системами, также могут найти для себя много интересного. В курсе рассмотрены все этапы создания безопасного 64-разрядного приложения или перенос существующего 32-разрядного кода в 64-разрядную систему.
источник
2019 November 15
Библиотека C/C++ разработчика
источник
Библиотека C/C++ разработчика
«Chaos Game» — реализация в C++

«Chaos Game» — математическая игра для одного игрока. Как это типично для подобных математических вещей, на самом деле это не игра. В математике этот термин первоначально относился к методу создания фрактала с использованием многоугольника и произвольно выбранной начальной точки внутри него. В этой статье показана реализация в C++ классической «Chaos Game».

Фрактал возникает путем итеративного создания последовательности точек, начиная с начальной случайной точки, в которой каждая точка в последовательности представляет собой заданную дробь расстояния между предыдущей точкой и одной из вершин многоугольника. Вершина выбирается случайным образом на каждой итерации. Повторение этого итеративного процесса большое количество раз, выбор случайной вершины на каждой итерации и выбрасывание первых нескольких точек в последовательности часто (но не всегда) приводит к появлению фрактальной формы.

Использование правильного треугольника и множителя 1/2 приведет к треугольнику Серпинского, а создание правильного расположения с четырьмя точками и множителю 1/2 создаст отображение «Тетраэдра Серпинского», трехмерного аналога Серпинского. Поскольку число точек увеличивается до числа N, расположение образует соответствующий (N-1)-мерный симплекс Серпинского.
источник