The above field is supplemented with consent to receive a newsletter containing information and marketing content about the cppstories.com portal from Bartłomiej Filipek codebf based in Krakow. The consent may be withdrawn at any time. See the full Privacy Policy.
Let’s say we have the following code:
LegacyList* pMyList = new LegacyList(); ... pMyList->ReleaseElements(); delete pMyList; In order to fully delete an object we need to do some additional action.
How to make it more C++11? How to use unique_ptr or shared_ptr here?
Intro We all know that smart pointers are really nice things and we should be using them instead of raw new and delete.
Visual Studio is my main development environment. I’ve been using this tool probably since version 2003…2005. I am really happy that VS is getting more and more powerful these days and you can also use it on multiple-platforms (through VS Code, for web or cloud apps). What’s even better - it’s free for personal use or if you’re a small company (Community Version)!
Sometimes you can find interesting stuff in your past projects!
One day I was thinking about new post topics for the blog, but somehow, I got not much energy to do it. So, I just browsed through my very old projects (that are actually listed in my portfolio site). Memories came back and I decided maybe it’s time to refresh the ancient code files!
The original code from my previous post about “nice factory” did not work properly and I though there is no chance to fix it.
It appears, I was totally wrong! I got a really valuable feedback (even with source code) and now I can present this improved version.
All credits should go to Matthew Vogt, who send me his version of the code and discussed the proposed solution.
As it appears, my last post about SFINAE wasn’t that bad! I got a valuable comments and suggestions from many people. This post gathers that feedback.
Comments from @reddit/cpp
Using modern approach In one comment, STL (Stephan T. Lavavej) mentioned that the solution I presented in the article was from old Cpp style.
Around one and a half year ago I did some benchmarks on updating objects allocated in a continuous memory block vs allocated individually as pointers on the heap: Vector of Objects vs Vector of Pointers. The benchmarks was solely done from scratch and they’ve used only Windows High Performance Timer for measurement.
After I finished my last post about a performance timer, I got a comment suggesting other libraries - much more powerful than my simple solution. Let’s see what can be found in the area of benchmarking libraries.
Intro The timer I’ve introduced recently is easy to use, but also returns just the basic information: elapsed time for an execution of some code… What if we need more advanced data and more structured approach of doing benchmarks in the system?
When you’re doing a code profiling session it’s great to have advanced and easy to use tools. But what if we want to do some simple test/benchmark? Maybe a custom code would do the job?
Let’s have a look at simple performance timer for C++ apps.
Intro A task might sound simple: detect what part of the code in the ABC module takes most of the time to execute.
Maybe I’ll be boring with this note, but again I need to write that this was another good year for C++!
Here’s a bunch of facts:
Visual Studio 2015 was released with great support for C++14/17 and even more experimental features. Long-awaited GCC 5.0 was released at the beginning of the year.
Verify you assumptions about tools you use!
Some time ago I was tracing a perf problem (UI code + some custom logic). I needed to track what module was eating most of the time in one specific scenario. I prepared release version of the app and I added some profiling code.
Several moths ago I’ve noticed there would be another version of OpenGL Superbible. This time the 7th edition! Without much thinking I quickly I pre-ordered it. Around two weeks ago the book appeared at my doorstep so now I can share my thoughts with you.
Is this book worth buying? Is the new content described in an valuable way?
Let’s look at the following problem:
We are designing a drawing application. We want some objects to be automatically scaled to fit inside parent objects. For example: when you make a page wider, images can decide to scale up (because there’s more space). Or if you make a parent box narrower image needs to scale down.