Click here to Skip to main content
14,450,208 members

Best C++ Article of April 2016

This competition has ended

Contribute to CodeProject and you'll automatically be in the running for a monthly prize!

Each month at CodeProject we gather together the best of the articles submitted the previous month and ask our readers to choose the best of the best. Entry is automatic - just submit you articke and we'll do the rest.

Check out the submission guidelines for information on posting articles.

Current Entries

Articles that match the contest criteria are automatically entered. The top 50 entries are shown.

6 Feb 2020U
David Lafreniere
Protect against heap fragmentation faults and improve execution speed with a fixed block alternative to STL std::allocator
26 Apr 2016
Dr. Song Li
This is a note on how compilers implement function calls to pass the parameters to and get the return value from the called functions.
18 Apr 2016
Mircea Diaconescu, Gerd Wagner
Learn how to develop Arduino-based apps for the Web of Things (WoT). This second part of a series of tutorials shows how to read analog and digital sensors with the help of Arduino.
19 Apr 2016
Clifford Nelson
A set of extension methods to support conditional Expression Bodied Functions and Properties
11 Apr 2016
Martin Mitáš
Direct2D or GDI+? Perhaps both, with a help of the right library.
23 Oct 2019
David Lafreniere
A Win32 CreateThread() C++ wrapper class for synchronized thread startup and forced message queue creation.
5 Apr 2016
Matt Scarpino
Developing Low-Level Linux Applications with XCB (X protocol C-language Binding)
12 Apr 2016
Shao Voon Wong
This tip presents a custom RTTI class which is 10x faster than dynamic_cast
1 Apr 2016
Ben Hanson
Convert EBNF to BNF
10 Apr 2016
AIT SALEM BOUSSAD
This first part of the article presents how to inject a DLL inside lsass process by using Windows service
8 Apr 2016
jurhas
Solving graph on linear time
13 Apr 2016
Member 11246861
Within LAN, laptop gets signals from microcomputer and microcontroller using TCP/IP and SPI
17 Apr 2016
leon de boer
In this second part, we will create an OpenGL MDI application
20 Apr 2016
Suarte
A hands on example of domain driven design - Part 3
13 Aug 2018
Shao Voon Wong
How to draw a text with an outline
12 Apr 2016
Shao Voon Wong
Using SSE2 to speed up alphablending.
7 Apr 2016
Apriorit Inc, Kulchytskyi Oleg
Several approaches of anti-debug protection and some tips about how they are usually neutralized by reversers
15 Dec 2017
Laurie Stearn
Dialogex with Listbox to manipulate long paths in Windows
19 Nov 2018
Shao Voon Wong
Benchmark between OpenMP, Parallel Patterns Library, Auto-Parallelizer and C++17 Parallel for_each
14 Apr 2016
Eyal Rosner
Easily setting debugger to attach a process on start
7 May 2018
Elmue
An electronic door lock that replaces a mechanic key by an RFID card or RFID token.
25 Jan 2019
David Lafreniere
Simplify passing data between threads using this multithreaded, portable C++ asynchronous callback framework
12 Apr 2016
Shao Voon Wong
How to use a font without installing it first on user systems
13 Aug 2018
Shao Voon Wong
Outline Text Part 2
12 Apr 2016
Shao Voon Wong
Introduction to Boost Multiprecision Library
12 Apr 2016
Shao Voon Wong
Debug Print using C++11 Variadic Template
1 Oct 2016
Shao Voon Wong
Writing comparison function for std::sort
12 Aug 2018
Shao Voon Wong
Simplistic Binary Streams with endian swap support
17 Apr 2016
Adamanteus
Preserving overheating processor in multitasking environment
12 Apr 2016
Shao Voon Wong
Draw text outline using DirectWrite
12 Apr 2016
Shao Voon Wong
Introduce 4 new algorithms on finding combinations
22 Apr 2016
Mircea Diaconescu, Gerd Wagner
Learn how to develop Arduino-based apps for the Web of Things (WoT). This first part of a series of tutorials shows the basics of an Arduino program (known as a "sketch") and provides a quick introduction to some electronic components, including resistors, RGB LEDs and LEDs in general.
12 Apr 2016
Shao Voon Wong
Never test for NaN by comparing it with NaN literal
12 Apr 2016
Shao Voon Wong
Linq-To-XML Node Creation for Native C++
3 Jan 2018
Shao Voon Wong
A C++ Text Stream design which has read/write symmetry
18 Sep 2017
Shao Voon Wong
Read/write CSV in few lines of code!
12 Apr 2016
Shao Voon Wong
The C++ XML parsing article which should have been written since the advent of XML! This article defines a new Elmax abstraction model over the DOM model.
6 Sep 2016
Mahmoud Samir Fayed
Free Open Source Innovative and practical general-purpose multi-paradigm Scripting language developed using C/C++
1 May 2016
itsdkg
A demonstration of how to use C++11/C++14 lambdas / Closures
19 May 2016
Noah L
Use-after-free bugs, new smart pointers and the new state of safe C++ programming
23 Nov 2017
EgorYusov
This article describes how to implement dynamic resources with Direct3D12 API using ring buffers.
11 Jan 2018
Shao Voon Wong
Explains the reason behind using pointer-to-pointer and reference-to-pointer to modify a pointer passed to a function
12 Apr 2016
Shao Voon Wong
Finding lexicographical permutations on GPU
12 Apr 2016
Shao Voon Wong
A tutorial on a new cross-platform C++ XML DOM library
6 Jun 2018
Shao Voon Wong
An article on finding combinations
12 Apr 2016
Shao Voon Wong
Benchmark of hash and non-hash container
12 Apr 2016
Shao Voon Wong
A new C++ SAX library to simplify parsing
11 Apr 2016
Serge V. Sushko
SQLite access C++ classes

Current Participants

Those with articles that match the contest criteria are automatically entered.

Adamanteus
Software Developer LLC "AMS"
Russian Federation Russian Federation
In 1991 year has received senior secondary education and entered in Moscow Economic-statistical Institute, by faculty of Supply mathematics, has studied to 2-nd course with high progress, and left it by own will.

With 1994-1996 years - serviced in army (navy fleet, now sailor of a stock).

Since 1999 year has begun my labour career, with job of computer operator, in department of computer maintenance developing learn-methodical documentation.

Single, on religion - atheist.
AIT SALEM BOUSSAD
Instructor / Trainer
France France
No Biography provided
Apriorit Inc
Chief Technology Officer Apriorit Inc.
United States United States
ApriorIT is a software research and development company specializing in cybersecurity and data management technology engineering. We work for a broad range of clients from Fortune 500 technology leaders to small innovative startups building unique solutions.

As Apriorit offers integrated research&development services for the software projects in such areas as endpoint security, network security, data security, embedded Systems, and virtualization, we have strong kernel and driver development skills, huge system programming expertise, and are reals fans of research projects.

Our specialty is reverse engineering, we apply it for security testing and security-related projects.

A separate department of Apriorit works on large-scale business SaaS solutions, handling tasks from business analysis, data architecture design, and web development to performance optimization and DevOps.

Official site: https://www.apriorit.com
Clutch profile: https://clutch.co/profile/apriorit
Group type: Organisation

33 members

Ben Hanson
Software Developer (Senior)
United Kingdom United Kingdom
I started programming in 1983 using Sinclair BASIC, then moving on to Z80 machine code and assembler. In 1988 I programmed 68000 assembler on the ATARI ST and it was 1990 when I started my degree in Computing Systems where I learnt Pascal, C and C++ as well as various academic programming languages (ML, LISP etc.)

I have been developing commercial software for Windows using C++ for 22 years.
Clifford Nelson
Software Developer (Senior) Clifford Nelson Consulting
United States United States
Has been working as a C# developer on contract for the last several years, including 3 years at Microsoft. Previously worked with Visual Basic and Microsoft Access VBA, and have developed code for Word, Excel and Outlook. Started working with WPF in 2007 when part of the Microsoft WPF team. For the last eight years has been working primarily as a senior WPF/C# and Silverlight/C# developer. Currently working as WPF developer with BioNano Genomics in San Diego, CA redesigning their UI for their camera system. he can be reached at qck1@hotmail.com.
David Lafreniere
United States United States
I've been a professional software engineer for over 20 years. When not writing code, I enjoy spending time with the family, camping and riding motorcycles around Southern California.
Dr. Song Li
United States United States
I have been working in the IT industry for some time. It is still exciting and I am still learning. I am a happy and honest person, and I want to be your friend.
EgorYusov
United States United States
Being a 3D graphics enthusiast for many years, I have worked on various rendering technologies including deformable terrain, physically-based water, shadows, volumetric and post-processing effects and other. I run Diligent Graphics as a place where I can experiment, learn new technologies, try new algorithms and share my ideas.
Elmue
Software Developer (Senior) ElmüSoft
Chile Chile
Software Engineer since 27 years.
Eyal Rosner
Architect - Hewlett Packard Enterprise
Unknown
My specialities are at the area of crash dump analysis, memory leaks tracking, network traffic analysis, advanced debugging technics and software security
itsdkg
Architect
India India
A programmer by heart since 1998. Written code in C++, Java, JavaScript, Python & Ruby, Worked on Stack Development to Web Development. Data Specialist with SQL and NoSQL DBs
jurhas
Italy Italy
No Biography provided
Lai Taiyu
Technical Writer De Gruyter Open Ltd.
Taiwan Taiwan
Dr. Lai Tai-Yu received the Ph.D. from National Taipei University of Technology in 2016. He is the co-author of 1 journal, 21 conference papers, 6 books, 9 articles in the codeproject.com, and 2 patent inventions. He was awarded the Certificate of Chinese Teaching as Second Language(TCSOL) in 2016. His research interests lie in the areas of digital image processing. He has been a senior software consultant.  

Dr Taiyu Lai. Stopień doktora, uzyskał w 2016 roku i objął stanowisko adiunkta na Wydziale. Ponadto jest autorem i współautorem: 1 publikacji artykułu w czasopiśmie naukowym, 21 artykułów opublikowanych w materiałach konferencyjnych, 6 książek, 9 eseje w monografiach codeproject.com, i posiada dwa patenty. Tytuł nauczyciel uzyskał w 2016 r. certyfikat nauczania chińskiego jako drugiego języka(TCSOL). Zainteresowania naukowe: przetwarzania obrazów. Jest starszym konsultantem ds. rozwoju oprogramowania.  

赖岱佑在2016年取得台北科技大学资讯工程博士学位,有1篇期刊、21篇会议论文、6本书籍、9篇文章在 codeproject.com 、2项专利。2016年,从台北科技大学华语文中心获得国际汉语教学(TCSOL)认证。研究方向:数字图像处理。职称是资深软件技术顾问。

賴岱佑在2016年取得台北科技大學資訊工程博士學位,有1篇期刊、21篇會議論文、6本書籍、9篇文章在 codeproject.com 、2項專利。2016年,從台北科技大學華語文中心獲得國際漢語教學(TCSOL)認證。研究方向:數位影像處理。職稱是資深軟體技術顧問。
Laurie Stearn
Australia Australia
No Biography provided
leon de boer
Software Developer
Australia Australia
Experience hardware/software design engineer with specialization in the field of embedded controllers and software. Software credits include Free Pascal development RTL, Cipher Multitask engraving software and Symmetry Laser/Cutting software. Firmware/hardware credits include Cipher CNC controllers series 1-3, Vision series 1 engraver controller and I-Marc pet tagger controller.

It is about now you realize you have been doing this for far too long Smile | :)

contact: ldeboer@gateway.net.au
No Biography provided
Martin Mitáš
Team Leader
Czech Republic Czech Republic
No Biography provided
Matt Scarpino
United States United States
No Biography provided
No Biography provided
Mircea Diaconescu
Technical Lead
Germany Germany
Researcher, developer, WoT/IoT enthusiast
Co-founder of http://web-engineering.info.
Noah L
United States United States
No Biography provided
Serge V. Sushko
Software Developer (Senior) Oxetta
Russian Federation Russian Federation
An independed software vendor developing business applications for various industries. My current project is Oxetta Report Generator, the free reporting engine for C/C++ developers: http://www.oxetta.com
Shao Voon Wong
Software Developer (Senior)
Singapore Singapore
Shao Voon is from Singapore. CodeProject awarded him a MVP in recognition of his article contributions in 2019. In his spare time, he prefers to writing applications based on 3rd party libraries than rolling out his own. His interest lies primarily in computer graphics, software optimization, concurrency, security and Agile methodologies.

You can reach him by sending a message on CodeProject or at his Coding Tidbit Blog!
Simon M Li
China China
I am C++ developer with 14 years experience. I am good at native programming and debugging. I am studying .net now.
Suarte
Technical Lead PSafe Technology
Brazil Brazil
A software development lover with more than 10 years of experience on programming, the IT field and computer science as well.

Contest Entries and Requirements

  1. The contest period covers the the first day of the month 12AM US Eastern Standard Time and ends the final day of the month at 11:59:59 PM US Eastern Standard Time. All entries must be submitted during this period in order to qualify.
  2. Entries must be an article, or blog entry.
  3. With the exception of the Everything Else category, the article must be tagged with at least one of the tags corresponding to that competition's category (for example, to enter the C# Competition you would need to tag your article with a C# tag).
  4. Articles entries must follow the CodeProject submission guidelines.
  5. No cheating, lying, plagiarizing articles, chicanery, or kicking.
  6. Articles may only be considered for a single category. If an article is eligible for multiple categories (for example, it pertains to both the C# and Web Dev categories), CodeProject editors and judges will decide which category the article shall be entered in.
  7. No author can be nominated twice in the same category.
  8. If an author writes has two separate articles, each article may be considered in their respective categories provided none of the aforementioned rules are broken. For example, if an author wrote two separate articles, one related to C# and one related to VB.NET, the author and articles could be nominated in the C# and VB.NET competitions, respectively.
  9. In the event an author wins multiple competitions, and repeat, identical prizes, the number of prizes issued is solely at the discretion of the prize issuer.
  10. In the event an article has multiple authors and/or contributors, the number of prizes issued is solely at the discretion of the prize issuer.
  11. In the event of a tie,  the number of prizes issued is solely at the discretion of the prize issuer.
  12. Multiple votes from the same IP will be automatically disqualified.
  13. The judges’ decision is final and no correspondence will be entered into.
  14. Only those who live in jurisdictions in which this contest is legal may enter.
  15. Any breach of the rules and the prize will be awarded to the runner up.
  16. By entering the contest you agree to the rules, conditions of entry, and agree that your member alias and any submitted material can be used for promotional purposes by CodeProject.
  17. Entries shall be deemed to be submitted by the authorized account holder of the email address submitted at the time of entry unless clearly indicated otherwise. "Authorized account holder" is defined as the natural person who is assigned to an email address by an internet access provider, on-line service provider, or other organization (e.g. business, educational institution, etc.) that is responsible for assigning email addresses for the domain associated with the submitted email address.

Eligibility

This competition is open to software development professionals & enthusiasts who are of the age of majority in their jurisdiction of residence; however, residents of Quebec and of the following countries are ineligible to participate due to legal constraints: Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria. Employees (or a member of their immediate family) of CodeProject or any of their affiliates, subsidiaries, advertising or promotional agencies are also ineligible to participate. Void where prohibited by law.

How to Enter

Entry is by the submission process described above. Please read the submission requirements before submitting your entry and ensure the article is tagged with at least one of the tags corresponding to that competition's category.

Lost, late, misdirected, or illegible entries will be disqualified. Any entry containing content that CodeProject deems objectionable for any reason will be disqualified. All decisions of CodeProject with respect to any aspect of the competition, including, without limitation, the eligibility of entries, are final and binding on all entrants in all matters as they relate to this competition. CodeProject reserves its right to modify the Rules.

CodeProject assumes no responsibility for lost, late, delayed, destroyed or misdirected mail, voice messages, email or any computer errors or malfunctions. No correspondence will be entered into with entrants.

CodeProject does not assume any responsibility for incorrect or inaccurate capture of entry information, technical malfunctions, human or technical error, lost, delayed or garbled data or transmissions, omission, interruption, deletion, defect or failures of any telephone or computer line or network, computer equipment, software or any combination thereof. Entry materials/data that have been tampered with or altered are void. If for any reason, in the opinion of CodeProject in its sole discretion, the competition is not capable of running as originally planned, or if the administration, security, fairness, integrity or the proper conduct of the competition is corrupted or adversely affected, including by reason of infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures or any other causes beyond its control, CodeProject reserves its right to cancel, terminate, modify, amend, extend or suspend the competition including cancelling any method of entry, and select a winner from previously received eligible entries. CodeProject reserves its right in its sole discretion to disqualify any individual it finds to be tampering with the entry process or the operation of the competition or to be acting in violation of the Rules or otherwise in a disruptive manner. CodeProject reserves its right to seek remedies and damages to the fullest extent of the law for any attempts to deliberately damage the competition web site or to undermine the legitimate operation of this competition. CodeProject shall not be held responsible for any errors or negligence that may arise or occur in connection with the competition including any damage to an entrant's computer equipment, system, software or any combination thereof, as a result of their participation in this competition or from downloading any material from the competition website where applicable.

You must sign in to participate in this contest.
This contest has ended.
1 Apr - 30 Apr 2016