In this short article, we will examine some non-obvious performance issues that can arise when using std::vector<char> as an output buffer for input-output operations. Specifically, we will discuss the consequences of using the resize and reserve methods and how their improper use can lead to undesirable outcomes.
C++ *
General-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation
Let's start in GameDev
I just started to learn Game Development, and decided to run write my personal blog about it. So there you can find information(resources, blogs, courses, books) that i've gathered and my personal problems with learning)
Technical Note. From C++1998 to C++2020
This technical note is devoted to covering information regarding all primary C++ programming language standards: C++03/98/11/14/17/20.
I am glad to share a technical note with some details regarding the C and all primary C++ programming language standards based on my experience and materials from the Reference Section of this document.
As of August 15, 2022, this technical note in PDF format consists of 72 pages.
Idiomatic Event Loop in C++
Sometimes programming with mutexes gets too complicated and messy. Maybe you need to meet a new friend — the Event Loop pattern.
How to Make Your Own C++ Game Engine
So you want to learn more about game engines and write one yourself? That's awesome! To help you on your journey, here are some recommendations of C++ libraries and dependencies that will help you hit the ground running.
Electron + web camera (cpp-ffmpeg)
An example of using Electron + React JS and a native ffmpeg addon to access a webcamera
This guide may be helpful to someone who is trying to find a way
to work with Electron if they need to use a c++ library or code
I was looking for a more realistic example than a simple 'hello world' and i didn't succeed
Here are the links in advance:
- electron - https://github.com/khomin/electron_camera_ffmpeg
- addon - https://github.com/khomin/electron_ffmpeg_addon_camera
So let me share my experience...
How PVS-Studio prevents rash code changes, example N4
If you regularly use a static code analyzer, you can save time on guessing why the new code doesn't work as planned. Let's look at another interesting error — the function broke during refactoring, and no one noticed that. No one — except for PVS-Studio that can automatically scan the project and email the report to us.
A bug report's adventure
We are often asked whether we send bug reports to developers of open-source projects. The answer is yes. More than that— we sometimes track the progress. This article is about one of the cases when this habit prevented a sloppy bug fix.
What memory release strategy does the PVS-Studio C and C++ core use?
In various discussions, we have already commented on how the PVS-Studio C and C++ module works with memory. Now it's time to make a small article from this comment.
MuditaOS: Will your alarm clock go off? Part I
Operating systems are a kind of software where code quality is critical. This time the PVS-Studio analyzer checked MuditaOS. So let's take a look at what the static analyzer found in this open-source OS.
The most interesting blogs and websites for C++ developers
Readers surely have favorite websites and blogs about C++. Hopefully, today your collection will grow.
PVS-Studio checks the code of Flipper Zero dolphin
Flipper Zero is an open-source multi-tool for geeks and penetration testers. It so happened that the Flipper Zero project and the PVS-Studio analyzer crossed paths. A philosophical question: should we check the project, if the project developers have already started fixing errors? Let's try to do this.
Top 10 bugs found in C++ projects in 2021
It's freezing outside, everyone has already decorated the Christmas tree and bought tangerines. New Year is coming! So, it's time to meet the Top 10 interesting bugs found by the PVS-Studio C++ analyzer in 2021.
Even small projects have bugs, or how PVS-Studio checked Blend2D
We often check large projects because it's easier to find bugs there. What if we try PVS-Studio on a small project? In this article we analyze Blend2D — a library for vector 2D graphics. Let's look at what we found.
Introduction
It's no secret that large projects have fascinating errors. It's not just "the larger the codebase is – the more errors we can find". It's also a known fact that the density of errors grows along with the codebase. That's why we love checking large projects — to treat you with a variety of "yummy" and tricky errors and typos. Besides, it's always interesting to search through a huge project with lots of dependencies, legacy code, and other stuff.
Today I'm moving away from this tradition. I decided to take a small project and see what PVS-Studio can find there. I chose Blend2D — branch master, commit c484790.
Checking Chromium after three years. How's it going?
We dust off the irregular series of articles about the Chromium project check. Let's look at the code quality in the latest Chromium release and check the new features of the PVS-Studio analyzer.
An article for those who, like me, do not understand the purpose of std::common_type
This article investigates why the standard library needs a way to deduce a common type, how it is implemented and how it works.
Virtual function calls in constructors and destructors (C++)
In different programming languages, the behavior of virtual functions differs when it comes to constructors and destructors. Incorrect use of virtual functions is a classic mistake. Developers often use virtual functions incorrectly. In this article, we discuss this classic mistake.
Thanks, Mario, but the code needs fixing — checking TheXTech
It's cool when enthusiastic developers create a working clone of a famous game. It's even cooler when people are ready to continue the development of such projects! In this article, we check TheXTech with PVS-Studio. TheXTech is an open implementation of the game from the Super Mario universe.
How the Carla car simulator helped us level up the static analysis of Unreal Engine 4 projects
One of the mechanisms of static analysis is method annotations of popular libraries. Annotations provide more information about functions during errors detecting. CARLA is an impressive open-source project in C++ that helped us implement this mechanism to our analyzer. Subsequently, the simulator became a test-target for the improved PVS-Studio static analyzer.
Authors' contribution
-
Andrey2008 6620.9 -
tangro 2409.0 -
SvyatoslavMC 2388.0 -
antoshkka 1813.0 -
haqreu 1366.0 -
olegchir 969.2 -
khizmax 945.4 -
eao197 876.0 -
anastasiak2512 741.0 -
0xd34df00d 726.0