Welcome

We started this site because the community at large seems especially hungry—right now—to know more about, and to be more involved in, what’s happening on the cutting edge of C++. We’re going to be writing articles on C++0x and advanced C++03.

We hope you’ll treat these articles as conversation starters. Ask questions, disagree, rant and/or rave as you see fit. We want your feedback!

Expressive C++: Introduction

This entry is part of a series, Expressive C++»

Hidden in C++ lurks another language—countless other languages, in fact—all of which are better than C++ at solving some types of problems. These domain-specific languages, be they languages for linear algebra, relational query or what-have-you, may only do one thing, but they do it well. We can create and use these other languages directly within C++ itself, using the power and flexibility of C++ to cut away the general-purpose parts of C++ we don’t want and replacing them with the domain-specific parts we do. In this series of articles, we’ll be taking a close look at domain-specific languages, what they’re good for, and how they can be easily implemented in C++ (with emphasis on easily) with the help of Boost.Proto. Continue Reading

Entries in this series:
  1. Expressive C++: Introduction
Powered by Hackadelic Sliding Notes 1.6.4

“Elements of Programming” Schedule Announcement

This entry is part of a series, Elements of Programming»

[please see the preface post for information on getting starting with this study group.]

To try and get the EoP group restarted we’re making a few changes. We’re resetting the schedule moving to 1 month per chapter (see below) and we’ve asked Piotr Jachowicz and Karl Miller to help keep things moving by encouraging the assigned people to submit their summaries and everyone to submit their exercises. Continue Reading

Algebraic Data Types

Functional programming in C++. Why would you want to do that and is it possible? In this series of posts I’m going to introduce functional programming concepts and show how they can be implemented in C++. See below for an introduction to the series and the kick-off article on Algebraic Data Types.

Continue Reading

Introducing: David Sankel

One of the most fascinating talks I saw at BoostCon 2010 was David Sankel, speaking about how to apply the fundamental mathematical ideas of functional programming in C++, using Boost. I asked David if he’d like to post some articles here about it, and I’m very pleased to announce the first one in his series, on algebraic datatypes. Take it away, David!

One comment so far, add another

Formal verification of an operating system kernel

I was just reading Communications of the ACM and ran across the article mentioned here. I used to think that nobody knew how to do formal verification of “type unsafe” languages that stay close enough to the machine model to be highly performant. Pretty cool.

One comment so far, add another

Only 3 days left for C++0x Comments!

In case you haven’t been paying attention, the final Committee Draft of the C++0x standard is out for review, and there is not much time left to make sure we fix any stupid mistakes, wrongheaded blunders, etc. To be specific, the official comment period ends 27 May, and if you submit a comment to your national body, the committee is required to “deal with it.” We can decide not to take any action, but we’re not allowed to ignore it. Trivial mistakes like typos can always be fixed after the standard ships, but since we’re on an aggressive schedule to ship this one, the next few days may be your last chance to help us get the big issues right. Continue Reading

EOP Exercise Round-Up: Chapter 2

This entry is part of a series, Elements of Programming»

A big thanks to Mark Ruzon and Piotr Jachowcz who submitted homework [and a thanks to Dave for painstakingly formatting the math without LaTeX -- Sean]. Chapter 2 gave us a detailed look at the structures obtained from just a single unary operation.

With a few exceptions—Mark Ruzon concentrated on the exercises and Piotr Jachowicz focused on proving lemmas. With that, let’s get started: Continue Reading

Elements of Programming Study Group

This entry is part of a series, Elements of Programming»

I’m back (again). Thanks for your patience. I’ve updated the schedule in the preface post. We’re going to try and stick to the schedule this time – so please review what chapter you signed up for and be prepared with your summary.

Dave and I are summarizing the homework we received for Chapter 2 and we’ll get it posted shortly. There were only two submissions – if you haven’t done it already, please do! Even if we post the summary first it is worth your time to work through it. Continue Reading

“Elements of Programming” Chapter 3 Preview

This entry is part of a series, Elements of Programming»

[please see the preface post for information on getting starting with this study group.]

The study group has died a bit (my own fault for not keeping up the pace). Dave and I are working on a homework summary for chapter 2 this morning but we’re late (see the schedule in the preface) on Chapter 3 content. Continue Reading

This Week in Boost

The Boost list has been very active for the last few weeks. Some of the major topics are the new Boost.Log library, Boost’s participation in the Google Summer of Code program, and general problems with Boost development.

Logging

The logging library submitted by Andrey Semashev was accepted on Wednesday. The library is very flexible, allowing users to define arbitrary attributes to attach to log records and dispatch these logs records to any number of sinks. It provides a number of built in attributes and sinks, and contains tools for filtering log records and formatting them for each sink. Continue Reading