Wrapping Resource Handles in Smart Pointers

Some time ago I covered how to use custom deleters with smart pointers. The basic idea is to specify a dedicated method that will be called when a pointer is released. One logical application of custom deleters might be resource handles like files or the WinApi HANDLE type. Let’s see how can we implement such thing.

READ MORE...

Code And Graphics in Mid 2016

It’s summer! Hmm… actually it’s summer for almost one month now. This time, I don’t want to write about something heavy and related to programming. Let’s make a little summary of the first part of the year.. and also, I have a question to you - can you help me a bit?

READ MORE...

7 books that taught me how to code

As you might read in my recent post - coding without Google - I’ve started learning to program mostly from books. In the beginning, I read them from cover to cover (assuming I could understand them!) and recreated examples. It was an excellent time! In the post, I’d like to share my list of important books that taught me the base of my knowledge.

READ MORE...

C++ (Core) Coding Guidelines

Since 2011, when C++11 arrived, we all should be changing our coding style into modern C++ and at the same time keep good old tips. There are also general rules for programming and bug-free coding. Here’s a list of guidelines and other resources that might help you. Core C++ Guidelines Main site: C++ Core Guidelines

READ MORE...

11 Debugging Tips That Will Save Your Time

Programming is not only typing the code and happily see how smoothly it runs. Often it doesn’t run in a way we imagine! Thus, it’s crucial to debug apps effectively. And, it appears that the debugging is an art on its own! Here’s my list of tips that hopefully could help in debugging native code.

READ MORE...

Coding without Google

Some time ago an intriguing article appeared on reddit: “Do Experienced Programmers Use Google Frequently?”. The author discussed if expert programmers use google more often than novice coders. He mentioned than using google is actually a good thing. It helps to find best solutions, validate ideas, speed the development. Google nowadays seems to be a crucial part of any developer toolbox.

READ MORE...

Google benchmark library

Some time ago I wrote about micro benchmarking libraries for C++ - here’s the link. I’ve described three libraries: Nonius, Hayai, Celero. But actually, I wanted to cover fourth one. Google Benchmark library was at that time not available for my Windows environment, so I couldn’t test it. Fortunately, under the original post I got a comment saying that the library is now ready for Visual Studio!

READ MORE...

Custom Deleters for C++ Smart Pointers

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.

READ MORE...

Visual Studio C++ Productivity Tips

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)!

READ MORE...

The Matrix Updated

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!

READ MORE...

Nice C++ Factory Implementation 2

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.

READ MORE...

SFINAE Followup

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.

READ MORE...