Conan C/C++ Package Manager
Do you know Conan?
What it does:
Conan is a portable package manager, intended for C and C++ developers, but it is able to manage builds from source, dependencies, and precompiled binaries for any language.
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Adrien Hamelin | Jun 14, 2016 12:56 PM | Tags: efficiency community
Do you know Conan?
What it does:
Conan is a portable package manager, intended for C and C++ developers, but it is able to manage builds from source, dependencies, and precompiled binaries for any language.
By Adrien Hamelin | Jun 14, 2016 12:44 PM | Tags: intermediate experimental
Modules in Conan explained:
Building And Packaging C++ Modules In Vs2015
by Conan's blog
From the article:
This post makes a brief introduction to the C++ modules (we wished C++17, but we will have to wait). Modules have already been experimentally available in an early implementation in CLang, and now Microsoft is also providing them in Visual Studio 2015. We will see their syntax and how to build them, as introduced in the Visual Studio Blog, and at the same time, we will show how to create and consumes packages with C++ modules with conan C/C++ package manager.
By Adrien Hamelin | Jun 13, 2016 12:57 PM | Tags: performance intermediate
An interesting article:
Implementing Queues for Event-Driven Programs
by “No Bugs” Hare
From the article:
We’ve already discussed things related to sockets; now let’s discuss the stuff which is often needed (in particular, it is of Utmost Importance when implementing Reactors), but which is not that common to be universally available as a part of operating system.
I’m speaking about queues. And not only just about “some” queue, but about queues which have certain properties desirable for our Reactors a.k.a. ad-hoc Finite State Machines a.k.a. Event-Driven Programs.
By Adrien Hamelin | Jun 13, 2016 12:53 PM | Tags: performance community
The new GoingNative is out!
GoingNative 50: New Visual C++ Code Optimizer
by Eric Battalio, Steve Carroll and Augustin Popa
From the video:
Happy 50th episode! This episode covers our new, more advanced code optimizer for the Visual C++ compiler back-end. It provides many improvements for both code size and performance, bringing the optimizer to a new standard of quality expected from a modern native compiler.
This is the first public release and we are encouraging people to try it and provide suggestions and feedback about potential bugs. The official release of the new optimizer is expected to be Visual Studio Update 3, while the release available today is unsupported and mostly for testing purposes.
Read our blog post to get the details!
By Adrien Hamelin | Jun 13, 2016 12:41 PM | Tags: intermediate c++14
Have you registered for CppCon 2016 in September? Don’t delay – Early Bird registration is open now.
While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:
constexpr: Introduction
by Scott Schurr
Summary of the talk:
I'm excited about constexpr. It's probably my favorite C++11 feature and it's gotten even better with C++14. This talk will introduce constexpr to the uninitiated. We'll start with C++11 and continue into the improvements introduced with C++14. We'll look into useful ways to think about constexpr code. We'll also cover some tips and tricks with writing constexpr code.
By Adrien Hamelin | Jun 10, 2016 01:38 PM | Tags: community c++11
An interesting 3D engine in C++:
magnum: C++11/C++14 and OpenGL graphics engine
by Vladimír Vondruš
Description:
Magnum is 2D/3D graphics engine written in C++11/C++14 and modern OpenGL. Its goal is to simplify low-level graphics development and interaction with OpenGL using recent C++11/C++14 features and to abstract away platform-specific issues.
By Adrien Hamelin | Jun 10, 2016 01:16 PM | Tags: intermediate efficiency
The compile time story continues...
Compile Time Constants Part 2: Compile Time Calculations
by Arne Mertz
From the article:
I have written about what we need compile time constants for last week. This time I will dig a bit into where we can get compile time constants from, and how we can do compile time calculations...
By Adrien Hamelin | Jun 10, 2016 01:09 PM | Tags: efficiency advanced
Have you registered for CppCon 2016 in September? Don’t delay – Early Bird registration is open now.
While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2015 for you to enjoy. Here is today’s feature:
Live Lock-Free or Deadlock (Practical Lock-free Programming)
by Fedor Pikus
Summary of the talk:
Part I:
Introduction to lock-free programming. We will cover the fundamentals of lock-free vs lock-based programming, explore the reasons to write lock-free programs as well as the reasons not to. We will learn, or be reminded, of the basic tools of lock-free programming and consider few simple examples. To make sure you stay on for part II, we will try something beyond the simple examples, for example, a lock-free list, just to see how insanely complex the problems can get.
Part II:
having been burned on the complexities of generic lock-free algorithms in part I, we take a more practical approach: assuming we are not all writing STL, what limitations can we really live with? Turns out that there are some inherent limitations imposed by the nature of the concurrent problem: is here really such a thing as “concurrent queue” (yes, sort of) and we can take advantages of these limitations (what an idea, concurrency actually makes something easier!) Then there are practical limitations that most application programmers can accept: is there really such a thing as a “lock-free queue” (may be, and you don’t need it). We will explore practical examples of (mostly) lock-free data structures, with actual implementations and performance measurements. Even if the specific limitations and simplifying assumptions used in this talk do not apply to your problem, the main idea to take away is how to find such assumptions and take advantage of them, because, chances are, you can use lock-free techniques and write code that works for you and is much simpler than what you learned before.
By Marco Arena | Jun 10, 2016 08:15 AM | Tags: gsl basics
A new post about the Guidelines Support Library (GSL):
Using the not_null Template for Pointers That Must Never Be Null
by Kate Gregory
From the article:
I'll show you how to ensure a pointer is never null, which will make your applications both faster and less likely to encounter runtime errors...
By robwirving | Jun 10, 2016 06:44 AM | Tags: None
Episode 59 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Jonathan Müller to discuss some of his recent blog posts, as well as the foonathan/memory library and the standardese documentation generator.
CppCast Episode 59: foonathan/memory and standardese with Jonathan Müller
by Rob Irving and Jason Turner
About the interviewee:
Jonathan is a CS student passionate about C++. In his spare time he writes libraries for real-time applications and games. He is mainly working on foonathan/memory which provides fast and customizable memory allocators that are easily integrated into your own code. Jonathan tweets at @foonathan and blogs about various C++ and library development related topics at foonathan.github.io. The blog posts are well received and often shared in the cpp subreddit or ISO C++.