Author's Blogs

Undefined behavior is closer than you think
By Andrey Karpov Posted on 02/05/16 0
Some people think that undefined behavior is caused only by gross errors (accessing outside the bounds of the array, for instance) or inadequate constructions (i = i++ + ++i, for example). That's why it is quite surprising when a programmer sees undefined behavior in the code that used to work co...
Celebrating 30th Anniversary of the First C++ Compiler: Let's Find Bugs in It
By Andrey Karpov Posted on 11/05/15 0
Cfront is a C++ compiler which came into existence in 1983 and was developed by Bjarne Stroustrup. At that time it was known as "C with Classes". Cfront had a complete parser, symbol tables, and built a tree for each class, function, etc. Cfront was based on CPre. Cfront defined the language until circa 1990. Many of the obscure corner cases in C++ are related to the Cfront implementation limitations. The reason is that Cfront performed translation from C++ to C. In short, Cfront is a sacred artifact for a C++ programmer. So I just couldn't help checking such a project.
The compiler is to blame for everything
By Andrey Karpov Posted on 06/04/15 5
Many programmers are very fond of blaming the compiler for different errors. Let's talk about it.
Twitter for C++ Programmers
By Andrey Karpov Posted on 04/30/15 0
This small post is for those programmers who use Twitter or are just about to start doing this. I'm sure developers will find some useful information here.
Let's Play a Game - find bugs in popular open-source projects
By Andrey Karpov Posted on 04/24/15 4
Test your C/C++ skills - find bugs in popular open-source projects.
The Last Line Effect
By Andrey Karpov Posted on 04/22/15 4
I have studied numbers of errors caused by using the Copy-Paste method and can assure you that programmers most often tend to make mistakes in the last fragment of a homogeneous code block. I have never seen this phenomenon described in books on programming, so I decided to write about it mysel...
Null Pointer Dereferencing Causes Undefined Behavior
By Andrey Karpov Posted on 04/20/15 6
I have unintentionally raised a large debate recently concerning the question if it is legal in C/C++ to use the &P->m_foo expression with P being a null pointer. The programmers' community divided into two camps. The first claimed with confidence that it wasn't legal while the others were...
By Andrey Karpov Posted on 04/17/15 0
This article is meant for those programmers who are only getting started with the Visual Studio environment and trying to compile their C++ projects under it. Everything looks strange and complicated in an unfamiliar environment, and novices are especially irritated by the stdafx.h file that caus...
PVS-Studio проверяет OpenCV
By Andrey Karpov Posted on 03/29/13 0
OpenCV - это библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения. Реализована на Си/Си++. Может свободно использоваться в академических и коммерческих целях, так как распространяется в условиях лицензии BSD. Пришло время проверить эту библиот...
А пишут ли ещё на Си++?
By Andrey Karpov Posted on 02/06/13 1
Для меня это вопрос странен. Ответ: конечно да, и ещё долго будут писать. Однако время от времени, мне задают этот вопрос на конференциях или при общении на форумах. Я решил дать на него небольшой письменный ответ, чтобы в дальнейшем иметь возможность ответить одной ссылкой. Мы разрабатываем инст...