From Iterators to Ranges: The Upcoming Evolution Of the STL - Arno Schödl - @meetingcpp 2015
A new video highlight from Meeting C++ 2015:
From Iterators to Ranges: The Upcoming Evolution Of the STL
by Arno Schödl
By Meeting C++ | Feb 14, 2016 07:35 AM | Tags: ranges performance intermediate efficiency c++17 c++14 c++11 boost basics advanced
From Iterators to Ranges: The Upcoming Evolution Of the STL
by Arno Schödl
By Meeting C++ | Feb 11, 2016 06:36 AM | Tags: performance intermediate efficiency c++14 c++11 boost basics advanced
My series on building applications with Qt an boost continues:
Searching and replacing in strings with boost
by Jens Weller
From the article:
The next big milestone for my CMS is to actually generate HTML files, and I'm almost there. I'll reach it in the next two weeks, most code is written, just a little bit of refactoring is needed. This blog post is about searching and replacing in strings. As I started last week with implementing the functionality, that turns the data in my CMS into an HTML website.
There needs to be a lot of text transformed, in order to turn a shared structure like a cross page layout into a single, special HTML file, one of those transformations is, to replace the internal links with the correct links. A link to a different page in the same website cannot be represented as a text link, instead it is represented by a linkid, which corresponds to the Page it points to. This is to have still the correct link, if the page is renamed or moved...
By Adrien Hamelin | Feb 11, 2016 02:50 AM | Tags: c++14 advanced
ACCU’s Overload journal of February 2016 is out. It contains the following C++ related articles.
Overload 131
From the journal:
Defining Concepts
Concepts provide a new way of constraining code. Andrew Sutton shows us how to define and use them. by Andrew Sutton
On Zero-Side-Effect Interactive Programming, Actors, and FSMs
Functional programming is alien to many programmers. Sergey Ignatchenko considers parallels between actors and finite state machines.
Template Programming Compile Time Combinations & Sieves
Functional style frequently uses sequences. Nick Weatherhead applies these ideas to combinations in C++. by Nick Weatherhead
Classdesc: A Reflection System for C++11
C++ lacks direct support for reflection. Russell Standish brings an automated reflection system for C++, Classdesc, up to date. by Russell Standish
QM Bites : Maximising Discoverability of Virtual Methods
C++11 introduced override as a contextual keyword. Matthew Wilson encourages us to use it. by Matthew Wilson
So Why is Spock Such a Big Deal?
Spock testing in a Java environment is all the rage. Russel Winder talks through the history of testing on the JVM and demonstrates why Spock is so groovy. by Russel Winder
By Meeting C++ | Feb 9, 2016 08:34 AM | Tags: performance multithread multiprocess intermediate efficiency c++11 advanced
A new video from Meeting C++ 2015:
Considerations for choosing the parallel computing strategy
by Dori Exterman
By Mark | Feb 7, 2016 11:41 PM | Tags: advanced
From NDC Oslo 2015:
Fundamentals of Type-Dependent Code Reuse
by Mark Isaacson
About the video:
This talk surveys different code reuse problems that can be solved by leveraging type information. Mark talks about how you can optimize your algorithms so that certain types use a "fast path", all while hiding that complexity from your users. He also talks about various ways to create "opt-in" functions for your classes. The talk is accessible to novices but builds gradually to complex ideas, including a theoretical C++17 "Mixer" class that allows users to add arbitrary functions to any type, including ints, on an instance by instance granularity.
By Adrien Hamelin | Feb 2, 2016 10:09 AM | Tags: c++14 advanced
How to use tuple return values with ease?
Emulating C++17 Structured Bindings in C++14
by John Bandela
From the article:
Bjarne Stroustrup back in Novemeber wrote a nice progress report, available here, of the Kona meeting. One of the proposals considered is called structured binding. The proposal addresses one of the inconveniences of returning multiple values from a function using tuples. While, it is very easy for a function to return multiple values, it is harder for the caller to use them. Here is an example from the write up.
consider the following function
tuple<T1,T2,T3> f() { /*...*/ return make_tuple(a,b,c); }If we want to split the tuple into variables without specifying the type, we have to do this;
auto t = f(); auto x = get<1>(t); auto y = get<2>(t); auto z = get<3>(t);The proposal puts forth the following syntax instead
auto {x,y,z} = f(); // x has type T1, y has type T2, z has type T3I am excited for this feature, and for C++17 in general. While waiting for C++17, I decided to see how close I could get with C++14. Here is the result.
auto r = AUTO_TIE(x,y,z) = f(); // x has type T1, y has type T2, z has type T3 // Unlike the C++17 feature, you need to use r.x instead of just x std::cout << r.x << "," << r.y << "," << r.z << "\n";
By Meeting C++ | Jan 29, 2016 07:54 AM | Tags: performance intermediate experimental c++14 c++11 boost advanced
A new blog entry about parallelism and boost::future:
Using parallelism with boost::future
by Jens Weller
From the article:
... While I'm fine with that the application locks up kind of hard during writing a GB zip file (its only job), I'd like to be as fast as possible. Thats why I decided to parallelize the part of the application that reads the file paths via boost::filesystem...
By Meeting C++ | Jan 26, 2016 07:43 AM | Tags: intermediate gis boost advanced
A new video from Meeting C++ 2015:
Boost.Geometry takes on the globe
by Menelaos Karavelas
By Meeting C++ | Jan 25, 2016 08:45 AM | Tags: intermediate experimental c++14 c++11 basics advanced
A new video from Meeting C++:
Functional Programming in C++
by Nicola Gigante
By Meeting C++ | Jan 22, 2016 04:02 AM | Tags: performance intermediate experimental efficiency advanced
A new talk from Meeting C++ 2015:
Generic programming for structure-aware algorithms
by Guntram Berti