Библиотека C/C++ разработчика | cpp, boost, qt
21K subscribers
1.57K photos
40 videos
16 files
3.74K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
Правильный ответ: 8
(1+3)[a] – это то же, что и a[1+3]==5
a[0]==1
(a+1)[2] можно записать в виде a[3]==4
В итоге:

5-1+4=8
Что хранит в себе vtable?
Адреса виртуальных функций.

Всякий раз, когда в программе объявляется виртуальная функция, создается координирующая таблица vtable. Она хранит адреса виртуальных функций.
Какими бывают виды специализации шаблона?

Полная и частичная специализация — верный ответ.
С-трюк: Расчет времени между событиями
Фрагмент кода для расчета времени, прошедшего между двумя событиями (к примеру, чтобы выяснить, сколько времени займет выполнение чего-либо).

#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;
}
Что в классе? Принципы интерфейса
«Что в классе?» — очень неплохая статья Герба Саттера. Автор утверждает, что можно легко расширить любой класс с помощью простых функций.

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

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

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

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

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

Не упусти свой шанс! Пиши на почту: [email protected]

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

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

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

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

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

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

#include <iostream> int main(int argc, char **argv) { std::cout << 25u - 50; return 0; }
Anonymous Poll
17%
-25
8%
25
76%
4294967271
Ответ: 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.
Ответ:
Каверзный вопрос с IT-собеседований, который чаще всего задают именно после виртуальных деструкторов, дабы сбить кандидата с толку. Конструктор не может быть виртуальным, поскольку в нем нет никакого смысла: при создании объектов нет такой неоднозначности, как при их удалении.