Tag / c++11

  • June 3, 2016 - Mauro Carvalho Chehab

    Watching Digital TV Via Kaffeine

    Kaffeine is a media player application that uses the KDE libraries. As part of my work maintaining the Linux Kernel media subsystem I needed some tools to test whether or not the digital TV core support works properly and to test Linux drivers for new devices. So, I’ve recently been working to improve Kaffeine to offer the necessary features for such tests. As part of this, I recently created a major Kaffeine version (2.0) that uses the latest version of KF5 (KDE Frameworks 5), and to use Qt5 library. I also started helping with upstream Kaffeine maintenance. UPDATE: Added instructions for Arch Linux How to Install Kaffeine Installing Kaffeine is easy. If you run openSUSE Tumbleweed, you can find an up-to-date package with the latest state of development tree in the KDE:Unstable:Extra repository. So, to use the newest version of Kaffeine, all you need to do is to run:

    […]

    Read More
  • October 13, 2015 - Daniel Kolesa

    Some Final Thoughts on C++11

    This article is part 4 of a 4 part series on the benefits of the C++11 revision of the C++ programming language. The previous three articles in this series introduced readers to C++11 toolchains and some of the biggest features this revision of C++ provides. This article covers a handful of minor features that are still quite valuable for anyone writing software in C++11 including range-based for loops, initializer lists, null pointer constants, strongly typed enumerations, static asserts, user defined literals and more. Finally, this article closes with an introduction to a personal project of mine that makes a handful of things in C++11 easier. Other improvements There are quite a few features of C++11 that are worth mentioning, even if they don’t warrant as detailed an entry as the last two articles in this series. Range-based for Loop There is now a new for loop syntax for iterating over […]

    Read More
  • September 30, 2015 - Daniel Kolesa

    4 More Reasons You Should Use C++11

    This article is part 3 of a 4 part series on the benefits of the C++11 revision of the C++ programming language C++11 is the first update to the standard since 2003 and brings many significant features into the language. This article covers 4 more features that are significant: lambda expressions, expression SFINAE, rvalue references and move semantics, and constexpr. Lambda expressions allow you to use functions in expression contexts. C++ also integrates basic closure functionality to share data between nested lambdas, allowing for cleaner functional style programming. However, as it has no garbage collection, effortless resource management with escaping closures is not possible (there are ways such as reference counting though). Expression SFINAE extends the original SFINAE rule, allowing for much cleaner template metaprogramming. Move semantics allow for more efficient and safer management of resources. Finally, constexpr extends certain parts of the language to compile time, allowing for various […]

    Read More
  • September 22, 2015 - Daniel Kolesa

    3 Reasons You Should Use C++11

    This article is part 2 of a 4 part series on the benefits of the C++11 revision of the C++ programming language C++11 is the first update to the standard since 2003 and brings many significant features into the language. This article covers three of the most valuable features of C++11: variadic templates, type and template aliases, and type inference. Variadic templates provide functionality to handle type packs, allowing you to create templates with a variable number of template parameters as well as true, type safe variadic functions. The new type alias syntax allows for better readability and templating. Type inference lets the language deduce types of expressions, thus reducing verbosity and removing the need to explicitly specify types in many places. Variadic Templates In my opinion variadic templates are the single most useful feature introduced in the new standard. They provide the ability to create type packs, allowing for […]

    Read More