You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let's learn about C++ via these 125 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the /Learn or LearnRepo.com to find the most read blog posts about any technology.
C++ is a powerful, high-performance, general-purpose programming language that supports object-oriented, generic, and imperative programming. It is widely used in systems programming, game development, embedded systems, and applications requiring maximum performance and control over hardware resources.
If you’ve adopted Linux, chances are you might have done so for development purposes. After all, it has everything you need to program in most languages, and do so for (almost) free.
All data in computer is represented in binary i.e. in 0 or 1. Computers or machines do not understand our languages, they understand bits. Generally programmer do not care about operations at the bit level. But sometimes a programmer has to dive in a deeper level and work on bits.
So you want to learn more about game engines and write one yourself? That's awesome! To help you on your journey, here are some recommendations of C++ libraries
This tutorial will demonstrate how to set up VSCode for compiling and debugging C++ in a way that causes it to trigger a makefile target compilation each time.
We all know that Data structures and Algorithms are the backbone of every concept we use. There are many concepts involved in Data structures and algorithms (for the sake of convenience, I'll use DSA). There will be many questions for a beginner like how to start learning DSA, as there are many concepts involved and he/she might get confused at the start. In this post, we are going to see a roadmap for learning DSA, which worked out for my friends. I am not saying that this is the perfect roadmap for DSA. You can use your own plans also but this is just an idea. So let's get started.
Building mobile applications can be tasking sometimes. In this article, we will share a few steps you can take to build your first app using a free IDE.
I know, it’s been a while since the last time I published something newbies-friendly on my blog. The main reason is that most of my readers are either experienced devs or from C background having modest C++ encounter. But while programming in C++ you need a completely different mindset as both C & C++ belongs to different programming paradigm. And I always strive to show them a better way of doing things in C++. Anyway, I found the topic which is lengthy, reasonably complex(at least it was for me), newbies-friendly as well as energizing for experienced folks(if Modern C++ jargons, rules & features added) i.e. C++ Template.
Everyone is saying that programming languages are similar, but just how similar? Does it mean that if you know one programming language you know all the others?
Trying to compile a .cu file is not supported in the VS Code natively. This can be a issue if you want to compile and debug (atleast the CPU part of the file as kernel debugging is not supported in VS Code at the moment).
#include <bits/stdc++.h> is not a C++ standard header. Using it is bad coding practice. In this article the reasons why this header should be avoided are shared
The answer to "What exactly nullptr is in C++?" would be a piece of cake for experienced C++ eyes & for those who are aware of Modern C++ i.e. keyword. But nullptr is more than just a keyword in C++ & to explain that, I have written this article. But before jump-into it, we will see issues with NULL & then we'll dive into the unsophisticated implementation of nullptr & some use-cases of nullptr.
This is the article I wish I had read when I started coding. I will dive deep into 20 problem-solving techniques that you must know to excel at your next interview.
Being able to make software applications relies on the ability to understand which language to use for which task. C++ is useful in making complex software.
C# and Python are two of the most popular languages with C# being widely used in business applications, while Python is more flexible and easier to learn.
Dynamic polymorphism is a fundamental concept in programming, allowing objects to be treated as instances of their parent class instead of the actual class.
Discover how to leverage templates and constexpr in modern C++ for faster, safer compile-time calculations. Uncover practical tips, pitfalls, and best practices
From C++11, std::tuple is an incredible expansion to Modern C++, that offers a fixed-size collection of heterogeneous values. Unfortunately, tuples can be somewhat dubious to manage in a conventional fashion. But, subsequently released C++ standard introduced a few features & helpers that greatly reduce the necessary boilerplate. So, in this article, I will explain the variadic template in C++ with the help of unsophisticated tuple
implementation. And also walks you through a tricky part of tuple i.e.
loop through tuple element. In spite of the fact that I have shrouded the variadic template in my prior article i.e. C++ Template: A Quick UpToDate Look. So, my focus here would be a blend of variadic template & tuple implementation with more up to date C++ gauges.
The Rust programming language is an ambitious project of the Mozilla Foundation – a language that claims to be the next step in evolution of C and C++. Over the years of existence of these languages some of their basic flaws still haven’t been fixed, like segmentation errors, manual memory control, risks of memory leaks and unpredictable compiler behavior. Rust was created to solve these problems while improving security and performance along the way.
Inheritance is one of the most used method for code reuse. Object Oriented Languages strive on the inheritance to collect the common functionality in a base class.
C was developed and promoted by Dennis Ritchie in the years between 1969 and 1973 at AT&T Bell Labs. C++ came into existence around 1979 by Bjarne Stroustrup. C++ was created as an enrichment to the C programming language, and initially, it was named "C with Classes."
Software design is difficult. One has to design features to fit past and future code. C++ Temporary lifetime extension can teach us a lesson about such design.
You probably have heard of the idea of out-of-order execution, and that it breaks some common-sense assumptions about writing programs, and software has to insert barriers to make things right. That was a baffling concept to me at least when I heard of it. At the very least, why would the hardware want to execute out of order only to have the software correct the behavior back? What's the point? Is the software taking care of all the quirks for me? And if not, where's the catch?
In the era of non-stop personal development, more and more software engineers choose to become competent in the second or even the third programming language to gain more experience and access more career opportunities. If you are a C++ developer who’s looking for a second programming language to master, it makes sense to add Java to your skills cloud. Next, I will explain to you how long it takes to learn Java for C++ programmers and why you should go for it.
Template parameter pack was introduced in C++11. Today we will utilise it to write our fold function. To the ones who don't know what a fold function the expression fold(add, 1, 2, 3, 4, 5) , we will output (1 +(2 + (3 + (4 + 5)))) = 15 (which is left fold). Similarly for fold(mul, 1, 2, 3, 4, 5) , we will output 120. More about it can be found here.
Interface is mostly viewed as a useful feature to write more maintainable code. But the concept of Interface developed to address a different issue with C++.
In this part of creating programming language, we'll implement the hybrid inheritance for the classes like in C++ and write a calculator with multiple classes
The typecasting is the feature which makes C++ more type-safe, robust & may convince you to use it over C. But this is also a more underrated topic when you are a newbie or moving from C background. Hence, I come up with an article on it. Here, we will not only see the C++ type casting with example for C developers but we will also cover Why do we need typecasting? & C++ type casting cheat codes for C developers to remember & employ it easily.
Competitive Programming is an art form. It is creative problem solving at its finest, a combination of hard analytical thinking and creativity. Competitive programmers use their knowledge of algorithms and data structures and logical reasoning skills to solve challenging algorithmic problems in a limited time frame.
V8 is not only a famous eight-cylinder engine you can find in Dodge Charger, Bentley Continental GT or Boss Hoss motorcycles. In 2008 The Chromium Project developers released a new JavaScript and WebAssembly engine with the same name – V8, such a groovy reference to the engineering marvel. So one more Vee-eight engine was born.
Machine learning has firmly entrenched in a variety of human fields, from speech recognition to medical diagnosing. The popularity of this approach is so great that people try to use it wherever they can. Some attempts to replace classical approaches with neural networks turn up unsuccessful. This time we'll consider machine learning in terms of creating effective static code analyzers for finding bugs and potential vulnerabilities.
Looking to get into development? Have a soft spot for old console based RPG games? Why not build Umoria! A Rouge clone created in a day of limited graphics - but nevertheless a very addicting game for the time. I would say one of the more memorable games that got me interested in coding (game was so hard I wanted to reverse engineer the save format).
So I have started updating myself with Modern C++ a while ago & since my post 21 new features of Modern C++ to use in your project & All about lambda function in C++ was popular I decided to write about advanced C++ concepts & idioms which I have learned from this wikibook & course.
Security is an eternal race between the techniques and technologies of attackers and those of the defenders. Today, I'm proud to announce a step forward for defenders with a new rule to detect a literal race condition: TOCTOU (or TOCTTOU) vulnerabilities, known in long-form as Time Of Check (to) Time Of Use.
The American company Electronic Arts Inc (EA) has made the source code of the games Command & Conquer: Tiberian Dawn and Command & Conquer: Red Alert publicly available. This code should help the game community to develop mods and maps, create custom units, and customize the gameplay logic. We all now have a unique opportunity to plunge into the history of development, which is very different from the modern one.
This article is the first part of a five-part series about SOLID as
Rock design principle series. The SOLID design principles focus on
developing software that is easy to maintainable, reusable &
extendable. In this article, we will see an example of the Single Responsibility Principle in C++ along with its benefits & generic guideline.
Just before the release of the "Amnesia: Rebirth" game, the vendor "Fractional Games" opened the source code of the legendary "Amnesia: The Dark Descent" and its sequel "Amnesia: A Machine For Pigs". Why not use the static analysis tool to see what dreadful mistakes are hidden in the inside of these cult horror games?
Is a string empty? What if it contains only white spaces? You shouldn't reinvent the wheel, since .NET exposes methods exactly for these cases: String.IsNullOrE
The American company Electronic Arts Inc (EA) has opened the source code of the games Command & Conquer: Tiberian Dawn and Command & Conquer: Red Alert publicly available. Several dozen errors were detected in the source code using the PVS-Studio analyzer, so, please, welcome the continuation of found defects review.
Some of you may have been tired of this topic already, but our software engineers picked 7 examples and tried to explain their behavior using the Standard (the latest draft at the time of writing):
In this article, the breadth-first search algorithm is explained with examples and implementations, including how it can be modified to find the shortest paths.
C++ vs. Java programming languages are designed for everyone, no matter if you are new to programming or you already have extensive programming experience.
Access modifiers have long been seen as essential to safe and clean code. But they’re ultimately a low-level mechanism for expressing high-level ideas.
Another year is drawing to an end, and it's a perfect time to make yourself a cup of coffee and reread the reviews of bugs collected across open-source projects over this year. This would take quite a while, of course, so we prepared this article to make it easier for you. Today we'll be recalling the most interesting dark spots that we came across in open-source C/C++ projects in 2019.