C++C++11C++14C++17Learn C++SyntaxTemplates

What Are The Logical Operation Metafunctions In Modern C++?

Metaprogramming is another great feature of modern C++ that allows programs to redesign itself during compilation or run time. In C++17, another new feature about metaprogramming is introduced, logical operation metafunctions. These are variadic metafunctions that are  conjunction, disjunction, and negation which can be used for metaprogramming features of applications. In this post, we…
Read more
C++C++17C++20Learn C++Templates

How To Use std::invoke In C++ 17?

There is a new library feature in the C++17 standard, it is std::invoke which is a useful feature to uniformly invoke callable entities. In this post, we explain what std::invoke is and how we can use it in examples. First, let’s remind ourselves about what is a callable…
C++C++17C++20Learn C++SyntaxTemplates

What Are The New Fold Expressions In C++ 17

C++17 is another big milestone in the history of C++, it comes with a lot of new features. In C++17, the fold expressions feature is a powerful feature that allows us to fold a parameter pack over a binary operator. Folding Expressions are very useful with variadic templates, and this feature makes template arguments more readable and concise. There are 4 different types of usage and in this…
Read more
C++C++11C++14C++17Learn C++Templates

Allowing move constructors to throw with std::move_if_noexcept

In a modern C++ code compiler, there are many features that help you learn, master, and remember the various features and functions of the C++ language. One such feature of modern C++ is the move constructor that allows you to move the resources from one object to another without copying them. The C++11 standard provides an alternative to std::move, which is std::move_if_noexcept, to solve some…
Read more
C++C++11C++14C++17C++20Introduction to C++Learn C++SyntaxTemplates

How To Learn Limits Of A Variable Type In C++

When there is a numerical value in an application’s development code, a professional programmer needs to understand which type of a variable should be used how big it could be in terms of capacity and memory usage. The developer must take into account what the minimum and maximum ranges could be. In most operations, the exact choice of variable might not be too important, but for larger numbers…
Read more