Bryce Adelstein Lelbach - The CUDA C++ Standard Library - Meeting C++ online
Last week Bryce Adelstein Lelbach spoke about The CUDA C++ Standard Library at Meeting C++ online
The CUDA C++ Standard Library
by Bryce Adelstein Lelbach
March 18-23, Tokyo, Japan
April 17-20, Bristol, UK
April 24-26, Leganes, Spain
May 7-12, Aspen, CO, USA
June 24-29, St. Louis, MO, USA
July 2-5, Folkestone, Kent, UK
By Meeting C++ | Jan 21, 2021 09:04 AM | Tags: performance meetingcpp experimental efficiency advanced
Last week Bryce Adelstein Lelbach spoke about The CUDA C++ Standard Library at Meeting C++ online
The CUDA C++ Standard Library
by Bryce Adelstein Lelbach
By Adrien Hamelin | Jan 18, 2021 01:09 PM | Tags: advanced
Optimise templates.
Build Throughput Series: Template Metaprogramming Fundamentals
by Xiang Fan
From the article:
Template metaprogramming is popular and seen in many code bases. However, it often contributes to long compile times. When investigating build throughput improvement opportunities in large codebases, our finding is that more than one million template specializations and template instantiations is quite common and often provides optimization opportunities for significant improvement.
In this blog post, I will walk through the differences between template specialization and template instantiation and how they are processed in the MSVC compiler...
By Adrien Hamelin | Jan 18, 2021 01:02 PM | Tags: c++11 advanced
Convinced?
4 Features of Boost HOF That Will Make Your Code Simpler
by Jonathan Boccara
From the article:
Boost HOF, standing for Higher Order Functions, is a Boost library offering functions that work on functions.
This impressive library provides a lot of advanced components allowing to go a step further into functional programming in C++. In this post, we’ll focus on 4 of the more basic ones (+ a bonus one) that allow to make code simpler in common tasks.
HOF provides one header in the form of #include <boost/hof/XXX.hpp> for each component, as well as a general header #include <boost/hof.hpp>. It is compatible with C++11...
By Adrien Hamelin | Jan 4, 2021 12:12 PM | Tags: advanced
Will you use it?
One Trick with Private Names and Function Templates
by Bartlomiej Filipek
From the article:
Last time in my blog post about How to Share Code with Const and Non-Const Functions in C++ I had a custom type declared and defined in one place (like in a header file). Recently, I tried to separate the declaration from implementation, and I got into a situation where one private function template was left.
In this article, I’d like to show you one trick that allowed me to convert this function template into a non-member function without giving up private details of the class...
By Adrien Hamelin | Jan 4, 2021 12:07 PM | Tags: community advanced
Helping research.
Interactive C++ for Data Science
by Vassil Vassilev, David Lange, Simeon Ehrig, Sylvain Corlay
From the article:
In our previous blog post “Interactive C++ with Cling” we mentioned that exploratory programming is an effective way to reduce the complexity of the problem. This post will discuss some applications of Cling developed to support data science researchers. In particular, interactively probing data and interfaces makes complex libraries and complex data more accessible users. We aim to demonstrate some of Cling’s features at scale; Cling’s eval-style programming support; projects related to Cling; and show interactive C++/CUDA...
By Meeting C++ | Dec 8, 2020 09:12 AM | Tags: performance meetingcpp intermediate experimental efficiency community basics advanced
This years center keynote given by Teresa Johnson
ThinLTO Whole Program Optimization - Meeting C++ 2020 Center Keynote
by Teresa Johnson
By Adrien Hamelin | Nov 30, 2020 01:05 PM | Tags: advanced
Lambdas.
Under the Covers of C++ Lambdas: Captures, Captures, Captures
by Andreas Fertig
From the article:
Lambda Capturing syntax allows us to quickly “wrap” a variable from the outside scope and then use it in the lambda body. We also know that under the hood the compiler translates lambda into a closure type… but what happens to those captured variables? Are they translated to public data members or private? See the newest guest post from Andreas to understand this tricky problem...
By Meeting C++ | Nov 25, 2020 10:55 AM | Tags: performance meetingcpp experimental efficiency community basics advanced
A talk on implementing STL Algorithms with SIMD
Denis Yaroshevskiy - my first SIMD - Meeting C++ online
By Adrien Hamelin | Nov 16, 2020 11:55 AM | Tags: advanced
How do you do it?
Destructing outside the lock when removing items from C++ standard containers
by Raymond Chen
From the article:
Last time, we saw that object destruction is a hidden callout that can cause you to violate the rule against calling out to external code while holding an internal lock...
By Adrien Hamelin | Nov 16, 2020 11:45 AM | Tags: advanced
Quick: in order to make x a dependent name, so that lookup is deferred until the template parameter is known
Recently on SO:
Why do I have to access template base class members through the this pointer?
If the classes below were not templates I could simply have x in the derived class. However, with the code below, I have to use this->x. Why?
template <typename T> class base { protected: int x; }; template <typename T> class derived : public base<T> { public: int f() { return this->x; } }; int main() { derived<int> d; d.f(); return 0; }