C++


  • C++23 is the next ISO/IEC 14882 standard for the C++ programming language. Slated for release in December 2023, it will replace the previous C++20 standard (C++ standards are on a fixed three-year release cycle). While the contents of the standard are still subject to change, they are pretty much…

    Blog
  • Large files — I’m talking really large, say 8 gb — can be frustrating to download. How much fun it is to stare at the spinner icon or progress bar for more than a few seconds, let alone hours? When we first came up with an interactive storytelling tool called ViewPoint we butted up against this…

    Blog
  • My last post, part 4 in the GPIO Programming series, showed some ways to program GPIO from Python. Python offers a number of advantages as a programming language including a short learning curve, no need for compilation, and the availability of many add-on modules. However, true compiled…

    Blog
  • Are you up to date with the latest C++14 and C++17 language features? Are you writing "modern C++"? Do you follow current best practices for C++? Are you avoiding deprecated language features and outdated programming practices? C++ has evolved significantly in the last few years with the…

    Blog
  • CppCon 2018 September 23 - 29 Bellevue, WA ICS is exhibiting at CppCon 2018, the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community. You will enjoy inspirational talks designed to help…

    Basic page
  • As a developer, you're probably familiar with the concept of Design Patterns [1], but you may not have heard of the term anti-pattern. First coined by Andrew Koenig, the term anti-pattern or AntiPattern [2] refers to a commonly used programming practice that has proven to be ineffective,…

    Blog
  • CppCon 2017 September 24 - 29 Bellevue, WA ICS is exhibiting at CppCon 2017, the annual, week-long face-to-face gathering for the entire C++ community. The conference is organized by the C++ community for the community. You will enjoy inspirational talks designed to help…

    Basic page
  • Happy New Year! In previous blogs I have covered installing Qt and Qt Creator on Windows and on Linux using the Qt installer and pre-built binaries. In this post, aimed at developers with novice-level Qt skills, we'll look at how you can build Qt yourself from source code…

    Blog
  • As 2016 draws to a close, I'd like to take a look back at some of the significant events of the past year that are relevant to the Qt framework and the ecosystem around it. Qt Releases Starting in 2016, Qt 4 was officially at end-of-life status and no longer supported. The last release was Qt 4.8…

    Blog
  • My recent blog post covered how to set up Qt and Qt Creator on a Windows 10 system. In this post I'll look at how to configure a Linux system for Qt desktop development. Since the set up process on Linux is almost identical to that on Windows, rather than repeat the information I refer…

    Blog
  • Feedback from our recent Qt for Beginners webinar series indicated a need for some basic tutorials for beginners. If you struggle with initially getting Qt set up for development with the Qt Creator IDE and a C++ compiler, this post is for you.  I'll walk you step by step through the…

    Blog
  • The preferred programming language for developing on Apple platforms has been Objective-C (1), going back to the 1990s when Apple acquired the NeXTSTEP operating system from which OS X is derived. Like C++, Objective-C adds object-oriented programming support to the C programming language. In 2014…

    Blog
  • The Qt 5.6.0 release, coming in early 2016, includes a number of new modules and classes. I plan to cover a number of these in a series of blog posts. In this first post, we'll start with one of the simpler classes in Qt 5.6.0: QVersionNumber. Basics Part of the Qt core, it provides a…

    Blog
  • In this post, we'll look at Boost::Log, a facility of the Boost C++ libraries that makes it easy to add logging to applications. QMessageLogger 1 was introduced in Qt 5.0 as a means of providing a framework for logging application messages. While QMessageLogger is useful as a lightweight…

    Blog
  • In this blog post, we will show an example of how to support dynamic language selection in an application using Qt. By "dynamic", I mean that the application can change the displayed language from within the application at run-time, rather than picking it up from the locale once on startup. Text…

    Blog
  • According to the book C++ GUI Programming with Qt 4 (1), the first public version of Qt was uploaded to the ftp site sunsite.unc.edu on May 20, 1995. This was the first public release of Qt and was identified as version 0.90. It was announced six days later on the comp.os.linux.announce Usenet…

    Blog
  • Many programs need to accept command line options. For all but the simplest programs, the logic to validate and parse command line options can be significant. Support for handling this beyond what is provided by the standard C/C++ run-time library has been a long-missing Qt feature. While it may…

    Blog
  • In this post we'll look briefly at the Model View support from QML in BlackBerry 10's Cascades Framework, including an example program. The Cascades framework lets you create UIs for the BlackBerry Application Platform with relative ease. This Qt based framework can be used to…

    Blog
  • Introduction With most C++ compilers now providing good support for the latest language standard, C++11, let's look at some of the new language features that are particularly useful for use in Qt programs. I won't cover all the new C++11 features; just some that in my experience are particularly…

    Blog
  • IntroductionAs promised, here is a follow-up to An Introduction to Clang. I mentioned in that posting the cool thing about Clang is that it is library based and offers public APIs that allows one to access information about a C or C++ program with relative ease. In this post we will work…

    Blog
  • In this blog post I will be writing about some of my experiences with clang. What is clang? It is a front end to the LLVM compiler and is designed to compile C, C++, Objective-C, and Objective-C++ to machine code. The LLVM Project "is a collection of modular and reusable compiler and toolchain…

    Blog
  • Written by Alan Ezust and Paul Ezust Foreword by Lars Knoll C++ is taught "the Qt Way". The source documents for our book are in a format that can be used to generate a textbook or instructor's slides. The book includes enough homework assignments and lectures for a 6 credit (full year) course.…

    Basic page