CppCon 2014 Introduction to C++ AMP (GPGPU Computing)--Marc Gregoire

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Introduction to C++ AMP (GPGPU Computing)

by Marc Gregoire

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Meet C++ AMP (Accelerated Massive Parallelism), an abstraction layer on top of accelerators such as GPUs. In its current version it allows you to run code on any DX11 GPU, independent of the vendor, and it will even distribute workload across GPUs of different vendors simultaneously. C++ AMP was originally designed by Microsoft but is now an open standard. C++ AMP can deliver orders of magnitude performance increase with certain algorithms by utilizing the GPU to perform mathematical calculations. This talk will give a high level overview of what C++ AMP is and what it can do for you. It is time to start taking advantage of the computing power of GPUs!

C++ User Group Meetings in April

The monthly overview on upcoming user group meetings at Meeting C++:

C++ User Group Meetings in April 2015

by Jens Weller

From the article:

The List:

    9.4 C++ UG Dublin - C/C++ two great talks\, quiz with prizes\, pizza\, ...
    9.4 C++ UG Amsterdam - New data structures in C++11 and Boost
    9.4 C++ UG Dresden - Go all binary!
    11.4 C++ UG Pune, India - More C++ Concurrency
    13.4 C++ UG Denver - Denver Tech Center C++ Developers
    14.4 C++ UG Luzern - C++ Pub Quiz
    15.4 C++ UG Düsseldorf - Encryption & C++
    15.4 C++ UG Hamburg - Operators
    15.4 C++ UG Northwest/Seattle - Pushing the boundaries of C++ Codegeneration
    16.4 C++ UG Rhein-Neckar - Modern C++ Allocators (C++03 to C++17)
    16.4 C++ UG Ruhrgebiet - April fools!
    20.4 C++ UG Austin - North Austin Monthly C/C++ Pub Social
    21.4 C++ UG Berlin - Rationales behind C++ atomics
    22.4 C++ UG San Francisco/ Bay area - Workshop and Discussion Group
    23.4 C++ UG Munich - TBA
    23.4 C++ UG New York - Introduction to C++ Casting
    28.4 C++ UG Chicago - Modern Template Metaprogramming
    29.4 C++ UG London - monthly meetup
    29.4 C++ UG Bremen - C++11/14/1x und Biicode

Overload 126 is now available

ACCU's Overload journal of April 2015 is out. It contains C++ related articles.

Overload 126

From the journal:

Alternatives to Singletons and Global Variables: Global variables and Singletons are usually considered bad. Bob Schmidt summarises some alternatives. by Bob Schmidt

Resource Management with Explicit Template Specializations: RAII is a useful idiom. Pavel Frolov presents a powerful extension using explicit template specialization. by Pavel Frolov

Variadic and Variable Templates: C++11 and 14 offer new features for Variadic and Variable templates. Peter Sommerlad showcases the compile-time possibilities they offer. by Peter Sommerlad

iterator_pair – A Simple and Useful Iterator Adapter: Can you form a new contain from two others? Vladimir Grigoriev reminds us how to write an iterator. by Vladimir Grigoriev

Benchmarking in C++

A writeup of one approach to implement helpers for...

... Benchmarking in C++

by Nick Athanasiou

From the article:

We’ll be creating a framework that attempts to provide a generic, cross platform (standard compliant), non dependent to third party libraries solution to the benchmarking problem and explore the facilities C++ has to offer on the topic. 

The end product will have the following use pattern :

benchmark<time_type, clock_type> bm;

bm. run(
    "Experiment Name"
    , sampleSize
    , { /* code to time */ }
    , "factor name"
    , factors. begin(), factors. end() );

bm. serialize(
    "benchmark name" , "output file name" , mode);

 

CppCon 2014 Rebuilding Boost Date-Time for C++11--Jeff Garland

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Rebuilding Boost Date-Time for C++11

by Jeff Garland

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Boost date_time is a widely used C++ library originally released in 2001 -- including being the basis for elements of the chrono library in c++11. While the library interface has stayed stable for more than a decade, the world around it has changed with the standard library and language changing. It is time for the library tobe rewritten to account for c++11.

The lecture describes in detail the design decisions and changes to the library for C++11. More generally it describes elements of design for a small valuetype library. Many of these considerations involve new features of C++11 and how they should be used. This includes noexcept, move construction/assignment (R-values), constexpr, enum classes, and user defined literals.

CppCast Episode 6: Fit and Tick with Paul Fultz II

Episode 6 of CppCast, the only podcast by C++ developers for C++ developers. In this episode Paul Fultz II joins Rob Irving to talk about his upcoming C++Now talk which will focus on the two C++ libraries hes created Fit and Tick.

CppCast Episode 6: Fit and Tick with Paul Fultz II

by Rob Irving

About the interviewee:

Paul Fultz II has developed in C++ professionally and personally in a variety of fields including DSP, web development, and desktop applications. He has developed in other languages as well such as Java, C#, Python, and Javascript but focuses most of his attention on C++ which combines correctness, expressiveness, and performance together.

CppCon 2014 Adventures In Updating A Legacy Codebase--Billy Baker

While we wait for CppCon 2015 in September, we’re featuring videos of some of the 100+ talks from CppCon 2014. Here is today’s feature:

Adventures In Updating A Legacy Codebase

by Billy Baker

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Still maintaining a legacy application? Do you have strdup()'s crying to be replaced with std::string? Do pre-standard headers such as iostream.h litter your code? Do boost libraries no longer compile with your favorite C++98 compiler? From GUIs to kernel drivers, this talk will look at some of the adventures taken while updating a codebase with more than 20 years of history to C++11.

The C languages merge

For immediate release
Cupertino, April 1, 2015

The C languages merge

To unite their growing communities and better meet the challenges from newer languages, such as Java and MatLab, the C languages have reached a formal agreement to merge.

Initially, the C and C++ ISO standards committees (WG11 and WG16) decided to unite as of Spring 2015 aiming for a joint C/C++ standard in 2016.

In a surprise move, the Objective-C leadership decided to join the new consortium. From their press release: “We are pleased to support this long-overdue initiative. Besides, with Apple putting their development money into Swift, we have lost our only support. We were just deciding to go independent and multi-platform when we heard rumors of the C/C++ merger and saw an obvious opportunity.”

A few hours later, feeling the pressure from JavaScript and C++, the C# designers declared their intent to join the C language melting pot: “With the performance and portability of C++ combined with the development environment of C#, the combined new language will be universal and unbeatable. We were going open source and cross-platform anyway. Most importantly, the opportunity to merge the efforts of the two Great Danes of programming language design is too good to miss.”

The remaining two members of WG4 (COBOL) decided that this offered a golden opportunity to renew COBOL: “By joining this new language, we can increase our appeal to the advertising-friendly demographic of programmers under the age of 70, and enlarge the COBOL presence in the mainframe market and beyond. We will be pleased to contribute from our vast intellectual property store of uppercase names to this exciting new effort.”

Several other languages, including Snobol, JavaScript, and Rust, inquired about membership but did not at this time meet the requirement of having a capital C in their names.

Academics and educators met the announcement with ecstatic outbursts, including: “We can spend years teaching all this!” (Chancellor, University of Tejas at Aston Martin) and “This opens a multitude of amazing new opportunities for academic dialects, research papers and industrial funding” (Dean, College of Computing, Del Monte University) and "Good luck with that!" (Registrar, Appl University).

The new consortium's first important language design task, already in progress, is to decide the name of the new language. "It is clear that the name must start with C, but beyond that there still isn’t agreement," said one person familiar with the matter but who was not authorized to speak publicly about the negotiations. "'C15' is considered too boring and might be confused with C. 'Objective-C#++' and 'C++++++' are too hard to pronounce, though everyone seemed to like 'C+++++' because it was considerably terser than both of those but unfortunately that one is syntactically malformed. The obvious 'Clang' is already taken by a related effort, and given their recent blitzkrieg-style expansion across this and nearby solar systems, we figured they didn't need more encouragement on their way to Local Cluster domination. 'C united' and 'Cucumber' are the current front runners, with votes split along party lines." The final decision on the name will be taken by vote at the first joint meeting in May 2015 in Chicago.

So far, no technical details about the merged language are available. Bjarne Stroustrup and Dennis Ritchie declined to comment, but were seen shaking their heads and muttering, “they’re nuts!”

Media contact: Clarence C. Cucumber ([email protected]), Convener pro tem, C/C++/ObjectiveC/C#/COBOL joint development committee (soon to become ISO WG41)