Blog

Trees, tree models and treeviews in Qt

The first part in my series on writing applications with C++ using Qt and boost:

Trees, tree models and treeviews in Qt

by Jens Weller

From the article:

On Tuesday I've announced this new series, this is the first installment showing the progress. The first thing I did when I started to work on my new application, was to implement a generic tree class, that then is exposed through not so generic tree model to Qt. The QTreeView then simply displays the data in the tree. My goals are, that the class containing the tree it self, is independent from Qt. Yet as its used in Qt, there are a few design decisions which reflect the needs of the Qt Model View system...

C++ Siberia 2015

Program, speakers etc. are all online now in Russian.

C++ Siberia 2015

Organized by Sergey Platonov

What to expect at Siberia C++:

The event will take place in Novosibirsk, Siberia, Russia in August 2015. People from Yandex, Boost, PVS-Studio and many more companies will share their knowledge on compilers, concurrency and much more.

CppCon 2014 Using C++ to Connect to Web Services—Steve Gates

Have you registered for CppCon 2015 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2014 for you to enjoy. Here is today’s feature:

Using C++ to Connect to Web Services

by Steve Gates

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

Many languages have great support for connecting to web services. Trying to connect C++ applications to the cloud is difficult. The C++ standard library doesn't contain anything for networking (yet), and with the proliferation of devices, being able to do so in a cross platform manner is even more appealing. Often requiring use of multiple different styled, and potentially low level, libraries where asynchrony wasn't designed from the start. Or by building your own abstract layers over platform and operating system APIs, all of which distract from focusing on the core logic of your application.

The C++ REST SDK makes connecting to services easier by creating APIs focused on simplicity and asynchrony, built using tasks from the Parallel Patterns Library. This is done by putting together a series of cross platform libraries for working with HTTP, WebSockets, JSON, URIs, and OAuth. In many cases building on top of other popular open source libraries like Boost, OpenSSL, and WebSocket++. This talk will take a practical approach looking at what is involved in connecting to some of the common popular services from C++, using the C++ REST SDK and other libraries. Several tutorial style example and demos will be done using C++ code that runs on all the major platforms.

Building Applications with Qt and boost

I'm starting a series on my blog and youtube channel, about building an application in C++:

Building Applications with Qt and boost

by Jens Weller

From the article:

This is the start of a series of posts, in which I'll try to document my weekly work on a new application, build with Qt and boost. This first post is rather short, but I'd quickly try to give you an overview, why I use both Qt and boost in the same application. Regarding Qt, I wrote an introduction a two years ago, also for boost, there is an excellent website/tutorial about boost by Boris Schäling (buy his book! wink). This series is not meant as a general introduction, yet I try to show you how and what I use of Qt and boost.

CppCon 2015 program is available: 100+ talks, all new

cppcon-054.PNGThe CppCon 2015 program has been posted! A few additional well-known speakers will also be announced soon for the remaining plenary sessions, but the majority of the program is now set: After the opening keynote by Bjarne Stroustrup on "Writing Good C++14," once again there are 100+ top-quality talks in 6 tracks all week long at this year's premier C++ festival, presented by over 80 speakers from around the world.

Note that there are no repeats -- all of the 100+ talks are new since last year. (If you missed last year's talks, you can watch them for free online on YouTube and Channel 9.) This year the program committee had even more submissions than last time, nearly twice as many as could be accepted. Even though this meant turning down lots of very good talk proposals simply for lack of room, the good news is that's because there was so much even stronger material, and this year's program is packed with the very best topics and content on C++ available this year. Register now for September 20-25, 2015!

Here's the announcement:

CppCon 2015 Program Available

The CppCon 2015 Program is now (mostly) available with talk titles, abstracts, and speakers. The program contains over 100 one-hour sessions by over 80 speakers including many speakers returning from last year’s very successful program as well as many new voices. Not all sessions are announced yet, but we have announced our opening keynote by C++ creator Bjarne Stroustrup on Writing Good C++14.

Finally, we would like to thank the program committee, the speakers on the program, and the many more who proposed talks which we unfortunately just couldn’t squeeze in this year. Thank you for your hard work and enthusiastic support for this year’s program!

CppCon 2014 sqlpp11, An SQL Library Worthy Of Modern C++—Roland Bock

Have you registered for CppCon 2015 in September? Don’t delay – Registration is open now.

While we wait for this year’s event, we’re featuring videos of some of the 100+ talks from CppCon 2014 for you to enjoy. Here is today’s feature:

sqlpp11, An SQL Library Worthy Of Modern C++

by Roland Bock

(watch on YouTube) (watch on Channel 9)

Summary of the talk:

SQL and C++ are both strongly typed languages. They should play well together. But most C/C++ interfaces to SQL databases are string based. They force the developer to effectively hide the SQL types, names and expression structures from the compiler. This defers the validation of SQL expressions until runtime, i.e. unit tests or even production. And the strings might even be vendor specific, because different databases expect different dialects of SQL in those strings.

That feels wrong. Modern C++ can do better.

This talk gives an introduction to sqlpp11, a templated embedded domain specific language for SQL in C++. It allows you to build type-safe SQL expressions with type-safe results, all of which can be verified at compile time, long before your code enters unit tests or even production.

In addition to its obvious use with relational databases, sqlpp11 can also serve as an SQL frontend for all kinds of data sources: Since sqlpp11 offers complete SQL expression trees even at compile time, it isn't hard to apply SQL expressions to std::vector or std::map for instance, or streams, or XML, or JSON, you name it. With your help, sqlpp11 could become for C++ what LINQ is for C#.

std::shared_ptr’s secret constructor—Anthony Williams

std::shared_ptr has a secret: the aliasing constructor, that most users don't even know exists, but which is surprisingly useful. 

std::shared_ptr's secret constructor

by Anthony Williams

From the article:

What does this secret constructor do for us? It allows us to construct a new shared_ptr instance that shares ownership with another shared_ptr, but which has a different pointer value...

 

 

boost::variant and a general, generic visitor class

Starting a new project with boost::variant, I got into thinking about a general generic visitor for boost::variant...

boost::variant and a general, generic visitor class

by Jens Weller

From the article:

So, I started a new project, and I do use boost::variant to be able to stick otherwise unrelated classes into the same container. Actually a tree, but that doesn't matter here. With boost::variant, you simply derive your visitor class from the static_visitor class, which lets you visit the types in a boost::variant via the call operator. When you want to do always the same for all types, you simply can add a template method version of the call operator...