The talk was quite interesting. He clarified that it isn't yet C++09, but he hopes that it will become that (if not, C++0xA). He did mention the topic of smart pointers, but also mentioned that they do slightly worry him, given that they can cause coders to be sloppy, and think that that causes their pointers to be pretty much safe from any problems (such as race conditions, etc).
Two concepts that he introduced that I really liked were the initializer list, which functions as follows (if I recall):
Code:
class foo
{
public:
foo(std::initializer_list<int> Args);
};
...
foo a {1, 2, 3};
foo b = foo{1, 2, 3};
And also the concept of being able to assign traits to a template, i.e. state that your function takes a parameter that must support the preincrement operator (++foo) and the unary asterisk (*a) operator, etc.
One other thing I just remembered is a new loop syntax:
Code:
vector<int> foo{1,2,3};
...
for(const auto& e : foo)
{
...
}
...
This causes e to iterate through all elements of the foo vector, and also causes the type of e to be the type associated with the foo vector (in this case, int).
A couple other neat things such as regexs and threading/thread pools appear to be coming as well, but I can't remember details, as I just got back from taking Stroustrup out to a bar after his talk.