Hacking on Clang to demystify the temporary objects

It is sometimes necessary for the C++ compiler to create temporary objects.They are used during:

  • Reference initialization.
  • Evaluation of expressions including standard type conversions.
  • Argument passing.
  • Function returns.
  • Evaluation of the throw expression.

Continue reading “Hacking on Clang to demystify the temporary objects”

Improve your C++ skills by exploring the Clang test suite.

Many resources exist talking about the better way to learn a programming language, we can enumerate:

  • Reading a book or a magazine.
  • Resources from web sites.
  • From a collegue.
  • Doing a training.
  • Explore open source projects.

However it’s difficult to find resources that explains easily the  advanced C++ techniques using mini samples and if you are interested to improve your C++ skills, it’s recommended to explore the standards which is a very difficult task, few developers could read a big pdf with more than 1500 pages. Continue reading “Improve your C++ skills by exploring the Clang test suite.”

What Clang can tell you about your Visual C++ projects?

Each compiler could report after the build many warnings. These warnings won’t keep your code from compiling except if you decide to treat them as errors. Don’t hesitate to take a look as these warnings instead of ignoring them. Indeed compiler warnings are often indicators of future bugs that you would see only at runtime.

Clang is a C/C++/Objective C compiler with many interesting features, here are some major end user features:

  • Fast compiles and low memory usage.
  • Expressive diagnostics.
  • GCC compatibility.

Continue reading “What Clang can tell you about your Visual C++ projects?”

Lessons to learn from the CLang/LLVM codebase

It’s proven that Clang is a mature compiler For C and C++ as GCC and Microsoft compilers, but what makes it special is the fact that it’s not just a compiler. It’s also an infrastructure to build tools. Thanks to its library based architecture which makes the reuse and integration of functionality provided more flexible and easier to integrate into other projects. Continue reading “Lessons to learn from the CLang/LLVM codebase”