Olivier Coudert on September 26th, 2013

CodeProjectType casting consists of converting an expression of a given type into another type. It can be done by explicitly telling the compiler which type the expression must be converted to, for instance: It can also be done implicitly by letting the compiler decide which type conversion is appropriate to successfully compile the source code. […]

Continue reading about Beware of implicit type casting

Olivier Coudert on March 31st, 2013

CodeProject In the late 50’s, when people programmed close to metal (read: with assembly languages) on a daily basis, there were only two so-called high-level programming languages: Fortran and Lisp. Both are still in use, even though they are considered passé (yet, I consider Lisp and its Zen-like syntax as one of the best languages […]

Continue reading about Is C++ passé?

Olivier Coudert on July 9th, 2011

CodeProject In a nutshell, serialization consists of writing data and objects on a support (a file, a buffer, a socket), so that they can be reconstructed later in the memory of the same or another computing host. The reconstruction process is also known as deserialization. Serializing a primitive type like a bool, int, or float, […]

Continue reading about A practical guide to C++ serialization

Olivier Coudert on May 30th, 2011

CodeProject A program is deterministic, or repeatable, if it produces the very same output when given the same input no matter how many times it is run. Refining this definition, we should consider whether a program produces the same result on any platform (32 and 64 bits machines, running Windows, Mac OS, Linux, Solaris, etc). […]

Continue reading about How to make software deterministic

Olivier Coudert on April 9th, 2011

CodeProject The quality of software is assessed by a number of variables. These variables can be divided into external and internal quality criteria. External quality is what a user experiences when running the software in its operational mode. Internal quality refers to aspects that are code-dependent, and that are not visible to the end-user. External […]

Continue reading about What is software quality?

Olivier Coudert on July 7th, 2010

CodeProject When developing in C++, an impeccable API is a must have: it has to be as simple as possible, abstract, generic, and extensible. One important generic concept that STL made C++ developers familiar with is the concept of iterator. An iterator is used to visit the elements of a container without exposing how the […]

Continue reading about How to write abstract iterators in C++