Product News

Visual Studio 2015 Preview announced, includes Clang/LLVM support for Android, iOS

This morning, Microsoft announced Visual Studio 2015 Preview. It contains continued C++11/14 conformance improvements in the traditional Visual C++ compiler, and also adds direct support for the Clang/LLVM compiler toolchain to build C++ code for Android now and iOS in the near future.

Cross-Platform Mobile Development with Visual C++

by Ankit Asthana

From the announcement:

Modern application customers are demanding applications be available for multiple device platforms (such as Windows, Android and iOS).... C++ is unique as it provides the ability to write efficient, fast and feature rich cross-platform mobile code once which can then be shared across these different device platforms.

Visual Studio 2015 Preview introduces support for developers to be able to build cross-platform mobile native (C/C++) binaries targeting Windows platforms (through the Visual C++ toolchain C1xx/C2) and the Android platform (through Clang/llvm)...

Introducing Proxygen, Facebook's C++ HTTP framework -- Daniel Sommermann and Alan Frindell

proxygen.PNGFresh from Facebook's coding blog:

Introducing Proxygen, Facebook's C++ HTTP framework

by Daniel Sommermann and Alan Frindell

From the announcement:

We are excited to announce the release of Proxygen, a collection of C++ HTTP libraries, including an easy-to-use HTTP server. In addition to HTTP/1.1, Proxygen (rhymes with "oxygen") supports SPDY/3 and SPDY/3.1. We are also iterating and developing support for HTTP/2. ...

Proxygen began as a project to write a customizable, high-performance HTTP(S) reverse-proxy load balancer nearly four years ago. We initially planned for Proxygen to be a software library for generating proxies, hence the name. But Proxygen has evolved considerably since the early days of the project. While there were a variety of software stacks that provided similar functionality to Proxygen at the time (Apache, nginx, HAProxy, Varnish, etc), we opted go in a different direction...

spdlog: Fast C++ logging library

Just announced:

spdlog: Super fast C++ logging library [GitHub]

The description is really "in a nut":

Very fast, header only, C++ logging library.

Install: Just copy the files to your build tree and use a C++11 compiler

Features:

  • Very fast -- performance is the primary goal (see becnhmarks below)
  • Headers only
  • No dependencies
  • Cross platform - Linux / Windows on 32/64 bits
  • Mult/Single threaded loggers
  • Rotating log files
  • Daily log files
  • Console logging
  • Optional async logging
  • Logging levels
  • Custom formatting with user defined patterns

Boost 1.57.0 has been released

Some welcome news from Boost.org...

Boost 1.57.0 has been released

These open-source libraries work well with the C++ Standard Library, and are usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.

This release contains one new library and numerous enhancements and bug fixes for existing libraries.

Read the full announcement for all the details, and for download links.

HPX version 0.9.9 released -- STE||AR Group

The STE||AR Group has released V0.9.9 of HPX -- A general purpose parallel C++ runtime system for applications of any scale.

HPX V0.9.9 Released

The newest version of HPX (V0.9.9) is now available for download! Please see here for the release notes.

HPX now exposes an API fully conforming to the concurrency related parts of the C++11 and C++14 standards, extended and applied to distributed computing.

From the announcement:

  • We completed the refactoring of hpx::future to be properly C++11 standards conforming.
  • We overhauled our build system to support newer CMake features to make it more robust and more portable.
  • We implemented a large part of the parallel algorithms and other parallel facilities proposed by C++ Technical Specifications N4104, N4088, and N4107.
  • We added many examples such as the 1D Stencil and the Matrix Transpose series.
  • We significantly improved the performance of the library and the existing documentation

Why a "file based" dependency manager rocks for C/C++

C/C++ file-based dependency manager

Biicode is a file based dependency manager for C++. That lets amazing things to happen, such as allowing to reuse individual files from previous projects without having to worry about packaging, setup or installs. Biicode tracks which files depends on which files, and use it to automatically define build targets, or manage dependencies accordingly. For example, you could just reuse the “Person” object from another project, and you will not depend on the other project's dependencies at all, as those files do not depend on them. And this is only the beginning, with this file based approach you can also do many other amazing things, stay tuned for next posts. We believe this is indeed a new paradigm for dependency management. We are still in beta, releasing based on our users feedback almost every week, towards such a system that could rock for all of us as developers. That means that we are not perfect, as I told you we are working hard and defining the best possible roadmap for our community, including open-sourcing the code and building all the necessary tools for production environments.

Help us improve, try it out

Quick Q: Is there an alternative to PC-Lint that supports C++14? -- StackOverflow

It's not often we run a link to a SO article in the Product section, but this is a useful product question.

Alternative for PC-Lint supporting C++14 (Visual Studio 2013)

I am using PC-Lint for quite some time with very good results.

The last year however, I noticed that PC-Lint cannot keep up with the new C++ standards. E.g. range-based for-loops, variadic templates, make_unique, ... which are all constructions supported by Visual Studio 2013, aren't recognized by PC-Lint.

The result is that my code is now filled with lint-comments to disable checking on blocks of code using these constructions. This means:

  • less readable code
  • I'm almost spending more time updating my lint-comments that actually writing code

Is there an alternative (free or commercial) for PC-Lint on Windows that can keep up with the recent C++ standards?

CppDepend 5 Released

CppDepend allows architects and developers to analyze a code base, automate code reviews, and facilitate refactoring and migration. It’s based on Clang for more reliability and lets queries the code base over LINQ queries thanks to CQLinq.

New features in CppDepend v5.0 include:

  • Import result files of other static analyzer like CppCheck and CPD,
  • Hundred of Clang diagnostics are available and it can be easily queried using CQLinq.
  • Custom CQLinq extensions which allows you to write elaborated CQLinq queries,
  • Support for C++14: CppDepend works with the last version of Clang which implement all of the Draft International Standard of the upcoming C++14 language standard,
  • Advanced integration with CppCheck,
  • The directory/file organization for C projects.

Open Source project license terms<span 1;"="">.

GEANT4: Forecasting the future -- Monica Friedlander

A widely-used C++ program you might never have heard of: Physicists and other scientists use the GEANT4 toolkit to identify problems before they occur.

GEANT4: Forecasting the future

By Monica Friedlander

From the article:

Physicists can tell the future -- or at least foresee multiple possible versions of it. They do this through computer simulations. Simulations can help scientists predict what will happen when a particular kind of particle hits a particular kind of material in a particle detector. But physicists are not the only scientists interested in predicting how particles and other matter will interact. This information is critical in multiple fields, especially those concerned about the effects of radiation.

At CERN in 1974, scientists created the first version of GEANT (Geometry and Tracking) to help physicists create simulations. Today it is in its fourth iteration, developed by an international collaboration of about 100 scientists from 19 countries. Anyone can download the system to a personal computer, use C++ programming language to plug in details about the particle and material in question and find out what will happen when the two meet.

GEANT4 is used in some of the most advanced accelerator experiments in the world, but its user base has grown beyond the particle physics community...

Rapid prototyping and teaching ZeroMQ in C++ with biicode -- Diego Rodriguez-Losada

From the biicode beta product blog:

Rapid prototyping and teaching ZeroMQ in C++ with biicode

by Diego Rodriguez-Losada

From the article:

Today, if you try to build the basic C++ client-server example that ZeroMQ provides in their site, you might encounter some problems. You have to guess that the C++ binding is not in the library, instead, it’s inside another repo (zmqcpp). I had to google it myself to find it. You have to get, configure and build the library, then setup your own project to use it.

The question is: Given some example source code snippets that use zmq, can anyone, even unexperienced developers build them quickly and easily, even without writing a single line of configuration, in any of the major OS? We think that it can be done, in a few simple steps...