This accelerated introduction to C++11/14 surveys most of the key additions to the C++ language, including support for increased code clarity (lambdas, uniform initialization, auto, new OOD control) and improved performance (rvalue references, move semantics and perfect forwarding.)
The presentation is designed for those who truly need a quick overview of the new C++, so the focus is on breadth rather than depth. Whenever feasible, new language features are presented in a style showcasing how they improve over their "Old C++" counterparts.
This accelerated introduction to C++11/14 surveys most of the key additions to the C++ language, including support for increased code clarity (lambdas, uniform initialization, auto, new OOD control) and improved performance (rvalue references, move semantics and perfect forwarding.)
The presentation is designed for those who truly need a quick overview of the new C++, so the focus is on breadth rather than depth. Whenever feasible, new language features are presented in a style showcasing how they improve over their "Old C++" counterparts.
There would be two types of attendees - library authors and observers.
a) Each library author would make a very short presentation (3 min) of what the library attempts to accomplish. To be eligible, a library must have documentation.
b) Authors draw lots to select a library other than their own. Observers are also permitted to draw lots or just select a library they might be interested.
c) Each selected library is “critiqued” by investigating the library and keeping a contemporaneous log on the experience. I’ll prepare a place where these critiques can be posted.
d) I will be available to answer questions and provide encouragement. Hopefully I can convince another boost author to show up.
So the timing would be:
8:30 - short introduction by me to describe the rules above.
8:35 - author presentations - assume 7
9:00 - drawing of lots - critique period begins
(9:15 - first session ends, second session begins in the same room, some attendees may switch sessions)
10:00 - pencils down - wrap up.
If there is demand, this session could be repeated subsequent evenings.
There would be two types of attendees - library authors and observers.
a) Each library author would make a very short presentation (3 min) of what the library attempts to accomplish. To be eligible, a library must have documentation.
b) Authors draw lots to select a library other than their own. Observers are also permitted to draw lots or just select a library they might be interested.
c) Each selected library is “critiqued” by investigating the library and keeping a contemporaneous log on the experience. I’ll prepare a place where these critiques can be posted.
d) I will be available to answer questions and provide encouragement. Hopefully I can convince another boost author to show up.
So the timing would be:
8:30 - short introduction by me to describe the rules above.
8:35 - author presentations - assume 7
9:00 - drawing of lots - critique period begins
(9:15 - first session ends, second session begins in the same room, some attendees may switch sessions)
10:00 - pencils down - wrap up.
If there is demand, this session could be repeated subsequent evenings.
In order to let more people experience type safety and other compile time constraints when programming SQL in C++, more connectors for sqlpp11 are required. Currently there are connectors for MySQL/MariaDb, Postgresql and Sqlite3, as well as an experimental binding to std::vector.
I would like to use the opportunity of having so many capable people in one place to try to add a few more connector libraries. These libraries would not be finished by the end of the day, but there are pretty good chances to get the first few queries processed.
"The compile time query checks are brilliant." dirkvdb
sqlpp11 is an EDSL for SQL in C++, allowing you to write SQL queries in name- and type-safe manner. You can learn a lot about how it works and how you benefit from it in my talk on Thursday.
sqlpp11 is vendor neutral. In order to work with a database, it requires a connector library. Such libraries are available for MySQL/MariaDb, PostgreSQL, Sqlite3 and (experimental) std::vector.
I want to use the opportunity of having so many highly capable developers in one place: Lets write a few more connector libraries. These could be for SQL databases, like Microsoft SQL, Oracle, Firebird, MemSQL, DB2 etc. If you're feeling more adventurous, we could at least start writing connectors to other databases, e.g. incoming JSON streams, or we could improve on the connector to C++ standard containers.
I'll start with a short introduction about what a connector looks like and how it is typically structured. After that we start coding (in teams, maybe). I will provide a skeleton so that you don't have to worry less about structure and boiler plate. I am sure that we will be successfully processing the first queries with new connectors by the end of the session.
Anyone can participate. It would be helpful if you
Whether you're thinking about self-publishing, working with a traditional publisher, or exploring other options, deciding whether or not it makes sense to devote 2,000 hours of your life to writing a technical book is non-trivial question. Pearson Technology Group Executive Editor Gregory Doench will present an overview of the challenges and opportunities facing authors and publishers today. Starting with a snapshot of current market conditions, he will discuss critical success factors, as well as review mistakes and pitfalls to avoid. In addition, the seven questions you need to ask yourself before starting to write a book will also be explored.
He will be joined by Pearson colleagues Jennifer Bortel and Kim Boedigheimer for a Q&A session for anybody who would like to learn more about working with InformIT.com and Addison-Wesley.
Followon from the lightning talk, contributions from attendees welcome.
I think that a lot of intermediate C++ programmers may not be aware of the issue and there is a lot of outdated information online.
My name is Andy Webber and I work at SIG which is a financial trading company near Philadelphia, PA. I started learning C++ in high school and I’ve been hooked ever since. I especially enjoy attempting to understand the full stack from the hardware up through high-level software. Understanding strict aliasing has been my crusade of late.
Anyone who's written in C++ or other compiled languages will have had to fix bugs. I'll be describing and demonstrating a debugging tool for Linux called UndoDB that will appear almost miraculous - it allows programs to be run backwards as well as forwards, allowing the root causes of bugs to be found with astonishing ease. UndoDB uses advanced optimization techniques to allow practical debugging of even very large and CPU-intensive programs, with typical slow-down of only 2-4x compared to 50,000x for gdb's process record.
In the Open Content session I'll be expanding on the details presented in the lightning talk to include a more in-depth look at the UndoDB technology and how it works, and will present a series of demos working with challenging real world examples. There will be time for an interactive Q and A session at the end of the talk.
JUCE (Jules' Utility Class Extensions) is an allencompassing C++ class library for developing crossplatform software. It contains a number of classes allowing to create standard applications, and is particularly wellsuited for building audio and realtime applications. In addition to the classes, JUCE offers support for linking and managing libraries and dependencies with dedicated software, the Introjucer. The Introjucer creates templates for most popular compiler environments that make the compiling toolchain simpler and faster.
Come and learn about JUCE: What is it? Who uses it? What do they use it for? How does it work? What exciting things are planned for its future? We'll present a short talk about a few of the library's noteworthy features, and invite the audience to join in with questions and opinions. We hope this session will be interesting for people who've never heard of JUCE, and also for those who use it every day!
Are you interested in improving C++ to support Gaming, real time/interactive requirements, high performance/low latency or GPU/Accelerator graphics in C++? Meet Michael Wong at the top of the escaltor on the 2nd Floor and we will head to a private room at the Wild Ginger next door to have an informal BoF to discuss how I can represent this important C++ interest group.
: there are some interesting challenges that one may run into building a compile time format library. In specific, I want to share techniques to answer these questions.
1. How can we pass a constant expression to a metafunction and retain its const-ness? This is easy if the expression is an integral, it gets more difficult when we have types such as const char * or std::tuple.
2. Can we get reasonable error messages? I share a technique to use a combination of SFINAE and static_assert to get cleaner error messages. Namely, we don't want to see all the candidates of operator<<.
I hope you can join me to explore these techniques :)
Followon from the lightning talk, contributions from attendees welcome.
Software transactional memory has been referred to in some quarters as "just a research toy". But for the right type of application this appears not to be the case as we've been using it successfully in shipping software at Wyatt Technology for the past three years. I'll get into why I think it has worked so well for us.
Brett Hall is the lead developer on Dynamics, a data collection and analysis package developed at Wyatt Technology for use with their light scattering instruments. He also blogs about C++, among other things, at backwardsincompatibilities.wordpress.com. The rest of the time he is mostly hanging out with his family and/or riding a mountain bike on the trails around Santa Barbara.
In order to let more people experience type safety and other compile time constraints when programming SQL in C++, more connectors for sqlpp11 are required. Currently there are connectors for MySQL/MariaDb, Postgresql and Sqlite3, as well as an experimental binding to std::vector.
I would like to use the opportunity of having so many capable people in one place to try to add a few more connector libraries. These libraries would not be finished by the end of the day, but there are pretty good chances to get the first few queries processed.
We will continue to develop the connectors we started in Part 1. Depending on how far we got, there are several options, for instance
I will give short introductions to these topics and help you with the implementation. Some of those will be challenging!
Since the overlap between topics is relatively small, several people could work on the same connector in parallel.
C++17 may bring most efficient, most scalable, most open/customizable coroutines of any programming language in existence. Stackless Resumable Functions are the proposed for standardization lightweight coroutines that scale to 100,000,000 of concurrent coroutines, allow to consume existing any asynchronous OS APIs / libraries with zero-overhead adapters and allow library designers go wild, invent new coroutine types and plug them into Resumable Stackless Functions machinery.
We will look at examples of tasks, goroutines, generators running on top of resumable functions. We will explore implementation details of how they actually work and look at the customization machinery that allows library designers and ordinary users to extend coroutines as needed.
Since there are so few game devs I propose meeting at Rock Bottom for lunch 12-1:30 for an informal Bird of a Feather talk.