C++ User Group Meetings in June
The monthly posting of C++ User Group Meetings at Meeting C++:
C++ User Group Meetings in June 2016
by Jens Weller
There are 6 new User Groups:
Montpellier (Qt), Vienna, Auckland, Irvine (Qt), Oslo (Qt), and Seoul.
October 25, Pavia, Italy
November 6-8, Berlin, Germany
November 3-8, Kona, HI, USA
By Meeting C++ | Jun 3, 2016 07:50 AM | Tags: community
The monthly posting of C++ User Group Meetings at Meeting C++:
C++ User Group Meetings in June 2016
by Jens Weller
There are 6 new User Groups:
Montpellier (Qt), Vienna, Auckland, Irvine (Qt), Oslo (Qt), and Seoul.
By robwirving | Jun 3, 2016 07:16 AM | Tags: None
Episode 58 of CppCast the only podcast for C++ developers by C++ developers. In this episode Rob and Jason are joined by Anastasia Kazakova to discuss new features of JetBrains' Clion IDE.
CppCast Episode 58: CLion with Anastasia Kazakova
by Rob Irving and Jason Turner
About the interviewee:
A C/C++ fan since university, Anastasia has been creating real-time *nix-based systems and pushing them to production for 8 years. She has a passion for networking algorithms (especially congestion problems and network management protocols) and embedded programming, and believes in good tooling. Now she is a part of the JetBrains team working as a Product Marketing Manager for CLion, a cross-platform C/C++ IDE.
By Alex Marmer | Jun 3, 2016 12:28 AM | Tags: None
Alex Marmer has openend a puzzle.
VoidParam Puzzle
From the article:
How to handle 'void' parameter passed in a macro. He provides a solution as well.
In case that you have other or better solutions, don't hesitate to use the comment option on this site.
By Adrien Hamelin | Jun 1, 2016 02:47 PM | Tags: performance intermediate
The title says it all:
Compile Time Constants Part 1: Why We Need Them
by Arne Mertz
From the article:
Compile time constants are an important part of C++. They contribute to program correctness and allow the optimizer to do a better job. Today I will deal with what is possible in terms of compile time constants and compile time calculations in C++03.
By Adrien Hamelin | Jun 1, 2016 02:41 PM | Tags: c++11 advanced
Quick A: To allow overloading with the underlying types of uint_least16_t and uint_least32_t
Recently on SO:
If nullptr_t isn't a keyword, why are char16_t and char32_t?
The proposal itself explains why: to allow overloading with the underlying types of
uint_least16_tanduint_least32_t. If they were typedefed this wouldn't be possible.DefineAs for why they aren't in the std namespace, this is for compatibility with the original C proposal. C++ prohibits the C definitions from appearing in its own version ofchar16_tto be a distinct new type, that has the same size and representation asuint_least16_t. Likewise, definechar32_tto be a distinct new type, that has the same size and representation asuint_least32_t.[N1040 defined
char16_tandchar32_tas typedefs touint_least16_tanduint_least32_t, which make overloading on these characters impossible.]<cuchar>[c.strings] / 3
The headers shall not define the typesThe types then would need to be global typedefs, which carries its own set of issues such aschar16_t,char32_t, andwchar_t(2.11).typedef decltype(u'q') char16_t; namespace foo { typedef int char16_t; }The reason for
std::nullptr_tnot being a keyword can be found in the question you linkedWe do not expect to see much direct use ofmakingnullptr_tin real programs.nullptr_tthe real exception here.
By Adrien Hamelin | Jun 1, 2016 02:37 PM | Tags: 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:
Beyond Sanitizers...
by Kostya Serebryany
Summary of the talk:
At CppCon’2014 we presented the Sanitizers, a family of dynamic testing tools for C++. These tools allow you to find many stability and security bugs in C++ code, but they are only as good as your tests are. In this talk we will show how to improve your tests with guided fuzzing and how to protect your applications in production even if some bugs were not found. Fuzzing, or fuzz testing, is a surprisingly effective technique that allows you to discover new interesting test inputs. Coverage-guided fuzzing uses coverage-like code instrumentation to make fuzzing orders of magnitude more efficient. Taint-guided fuzzing goes even further by using taint tracking techniques. The next line of defense may be incorporated directly into production: the Control Flow Integrity instrumentation allows you to protect your program from corrupted function pointers (including pointers to virtual tables) and separating stack variables from the call stack protects from corrupted return addresses -- both with near-zero overhead. We will concentrate on particular tools implemented in the opensource LLVM toolchain (libFuzzer, DataFlowSanitizer, -fsanitize=cfi,safe_stack), but will also discuss several alternatives.
By Blog Staff | May 31, 2016 11:39 AM | Tags: None
Well-illustrated, and well-illustrated, gems:
C++ for Games: Performance, Allocations and Data Locality
by Sergey Ignatchenko
From the draft chapter:
One further thing to keep in mind with regards to 90-10 (or 70-30) rule is that even if only performance of 10% of the code matters, the rest of the code can still affect performance of critical 10% in a Pretty Bad Way :-( ...
By Blog Staff | May 30, 2016 05:31 PM | Tags: None
Sergey is writing a book and making draft chapters available for review. Here are s
Some tried-and-true, well-illustrated and entertaining tips:
C++ Performance: Common Wisdoms and Common "Wisdoms"
by Sergey Ignatchenko
From the draft chapter intro:
The opposite of a fact is falsehood, but the opposite of one profound truth may very well be another profound truth. — Niels Bohr
There are quite a few common wisdoms when it comes to C++ and games. As it always the case when facing a bunch of common wisdoms, some of them have their merits, some are obsolete-beyond-belief, and some are just taken from a very different context and are not really applicable. Let’s take a look at the most popular ones...
By Adrien Hamelin | May 30, 2016 01:59 PM | Tags: experimental c++14
An interesting video to watch!
C++ Today
by Bjarne Stroustrup
Summary of the video:
During a short visit to College on 13 May 2016, Bjarne gave a talk describing what C++ is today (May 2016, C++14) and how it can be used well. He will focus on ISO standard C++ and the way it is developing.
By Adrien Hamelin | May 30, 2016 01:56 PM | Tags: community
News from Visual Studio:
May update for the C/C++ extension in Visual Studio Code
by Ankit Asthana
From the article:
We would like to thank all of you who have tried out the C/C++ extension in Visual Studio Code and have already provided
rich feedback on your experiences and filed issues and requests with us. We are working hard on incorporating your feedback
into the product. Continuing with our effort to make Visual Studio Code as the editor tool of choice for C++ developers with
this update of the C/C++ extension, we are introducing the following features:• Code formatting with clang-format
• Fuzzy Auto-Complete for C/C++ code
• Debugging on Windows for Cygwin/MinGW applications
• Console application debugging with GDB on the MacNow let’s dive into each one of these in more detail...