Product News

New version of CLion, a cross-platform C and C++ IDE, is released

Summer brings the new release of CLion, a cross-platform C/C++ IDE from JetBrains.

Welcome CLion 1.1 with improved C++ parser, LLDB on OS X, and code style settings

by Anastasia Kazakova

From the post, there are the new features and improvements on board:

  • Massive C++ parser overhaul to handle tricky modern C++ cases.
  • LLDB integration for OS X users.
  • Predefined code styles (like for example Google, Qt, GNU, Stroustrup).
  • New code styles settings for CMake
  • And more

Find a demo from Dmitri Nesteruk at the end of the post.

Boost Version 1.59 Released

The next version of boost is released.

Boost 1.59

From the release note:

These new libraries has been added:

  • Convert: An extendible and configurable type-conversion framework, from Vladimir Batov.
  • Coroutine2: (C++14) Coroutine library, from Oliver Kowalke.

A huge number of bugfixes and improvements were implemented for the existing libraries.

 

Many thanks to all contributors and maintainer!

C++ concepts support merged into gcc trunk

An evolution of gcc occured:

C++ concepts support merged into gcc trunk

From the article:

I've been banging on the concepts branch for the past month after Andrew told me it was about ready to merge, fixing bugs and streamlining things there to get familiar with the code while I could still look at it as a whole rather than mixed in with the rest of the compiler. But I think I've reached diminishing returns and so I'm going to go ahead and merge it into the trunk...

SourceMeter for C/C++ with open-source SonarQube plugin released

FrontEndART has release a new version of their SourceMeter.

SourceMeter 7.0 released with support for C/C++

by FrontEndART team

From the article:

Most important product characteristics of SourceMeter:

  • Platform-independent command line tools
  • Transparent integration into build processes
  • Coding issue detection
  • Clone detection (copy-pasted source code fragments) extended with clone tracking and "clone smells"
  • Metrics calculation at component, file, namespace, class, function and method levels
  • C++14 support (almost complete, based on EDG front-end)
  • SonarQube plug-in

Online demo

 

CppDepend v6 Now Released -- CodeGears

CodeGears just released their CppDepend version 6.

CppDepend v6 Released

From the article:

After 7 years of development, CppDepend reached a certain level of maturity. Yet there are still many new potential features and improvements possible. We found out that the most sensitive part for this version 6 was actually to chose carefully the set of new features and improvements we’d like to offer to users.  version 6 new stuff reflects well the most demanded features that have just been marked as completed. Further topics are:

  • External Tools Integration Using API
  • Import Coverage Data
  • Latest Clang Used
  • Sonar Integration
  • Enhanced Visual Studio Integration
  • Rule Improvements
  • Code Metrics Visualization

docopt.cpp: A C++11 Port--Jared Grubb

A nice library to help you ship a program:

docopt.cpp: A C++11 Port

by Jared Grubb

From the article:

Isn't it awesome how getopt (and boost::program_options for you fancy folk!) generate help messages based on your code?! These timeless functions have been around for decades and have proven we don't need anything better, right?

Hell no! You know what's awesome? It's when the option parser is generated based on the beautiful help message that you write yourself! This way you don't need to write this stupid repeatable parser-code, and instead can write only the help message--the way you want it...

Cling Aims to Provide a High-performance C++ REPL--Sergio De Simone

Read about a REPL allowing to test things rapidly in C++:

Cling Aims to Provide a High-performance C++ REPL

by Sergio De Simone

From the article:

Cling is an interactive C++ interpreter that is built on top of LLVM and Clang and promises to provide a leap in productivity by going beyond the usual code-compile-run-debug C++ workflow...

Other useful materials:

Mach7: Pattern Matching for C++

Here is a new library to perform pattern matching:

Mach7: Pattern Matching for C++

by Yuriy Solodkyy, Gabriel Dos Reis and Bjarne Stroustrup

From the article:

Pattern matching is an abstraction mechanism that can greatly simplify source code. Commonly, pattern matching is built into a language to provide better syntax, faster code, correctness guarantees and improved diagnostics. Mach7 is a library solution to pattern matching in C++ that maintains many of these features. All the patterns in Mach7 are user-definable, can be stored in variables, passed among functions, and allow the use of open class hierarchies...

Example:

// Fibonacci numbers
int fib(int n)
{
    var<int> m;

    Match(n)
    {
      Case(1)     return 1;
      Case(2)     return 1;
      Case(2*m)   return sqr(fib(m+1)) - sqr(fib(m-1));
      Case(2*m+1) return sqr(fib(m+1)) + sqr(fib(m));
    }
    EndMatch
}

Breaking Changes in Visual C++

From the Visual C++ Porting and Upgrading Guide (referring to Visual Studio 2015 RC):

Breaking Changes in Visual C++

by Microsoft

From the article:

When you upgrade to a new version of the Visual C++ compiler, you might encounter compilation and/or runtime errors in code that previously compiled and ran correctly...