Discussions, articles and news about the C++ programming language or programming in C++.
Our latest personality function knows whether it can handle an exception or not (assuming there is only one catch statement per try block and assuming no inheritance is used) but to make this knowledge useful, we have first to check if the exception we can handle matches the exception being thrown. Let’s try to do this.
For the past few weeks I have been quite busy working on a couple of things which involve quite a lot of coding. I had gotten myself a copy of CppDepend and knew this was the time to put it through the trenches. CppDepend is a static code analysis application that simplifies managing very complex C/C++ code through analysis of the code dependencies on Windows through visualization and the use of CQL (Code Query Language).
It seemed that long forum debates about methods of measuring algorithm’s running time, functions to use and precision that should be expected were over. Unfortunately, we have to return to this question once again. Today we will discuss the question how we should measure speed of a parallel algorithm.
I want to say right away that I will not give you a concrete recipe. I myself have faced the issue of measuring parallel algorithms’ speed only recently, so I am not an expert in this question. So, this post is rather a research article. I will appreciate if you share your opinions and recommendations with me. I think we will manage the problem together and make out an optimal solution.
An ideal subroutine is a mathematical function; it takes inputs and returns the results of its computation. It has a single entry point and all data local to it is initialized upon entry and cleaned up when it returns to the caller. The next call, if any, starts all over again and no local residues are carried over from the last invocation. A coroutine, is an interesting deviation from these conventions. It can yield control back to the caller as soon as there are partial results that can be put to use. Moreover, when invoked again, it can resume the computation from where it left. These yield/resume semantics make coroutines a better unit of structuring programs for certain types of problems.
Danny Kalev talks to Bjarne Stroustrup, C++ creator and author of of The C++ Programming Language, fourth edition, about the impact of C++11, why he doesn’t consider the job of a programming language to be secure, his thoughts on garbage collection, and what’s coming in C++14.
Performance is essential for infrastructure software. Modern infrastructure software depends heavily on components. Therefore, writing performant code in this environment requires deep understanding of the characteristics of such components. The course will help programmers to improve performance of their code by learning how to use these existing generic components effectively. In addition, it will teach them to extend the library with new high-performance components. Along the way, participants will learn how to use C++ as a high-performance language. The course will be taught interactively with the class discussing, discovering, and developing components together.
We have checked the header files from the Embarcadero C++Builder XE3 project. In fact, it means that we have checked just a small number of inline-functions. Accordingly, quite few issues were found, but they are enough to write a small post.
Hello, and welcome to the 11th part of the C / C++ low level curriculum. About time? Definitely!
Last time we looked at the basics of User Defined Types: how structs, classes, and unions are laid out in memory; and (some of) the implications of memory alignment on this picture.
In part 11 we’re going to look at how inheritance affects this picture, in particular the implications for memory layout of derived types and also for their behaviour during construction and destruction (note: we’re leaving multiple inheritance and the keyword virtual out of this picture to start with).