2007-05-11 [長年日記]

Alligator Eggs!

ワニとタマゴのパズルで型なしラムダ計算がわかる、かも。分かった後で、だから何?と聞かれるのが一番困る…

[C++] Trip Report: April 2007 ISO C++ Standards Meeting

C++09の話。

テンプレートエイリアス

テンプレートtypedefとして望まれていたものはテンプレートエイリアスとなるようです。

template<typename T>
using Registry = std::map<std::string, T>;

テンプレート引数がないものもtypedefの代わりに使えます。

using Size = int;

可変長テンプレート

可変長のテンプレート引数がサポートされるようです。

template<typename... Mixins>
class X : public Mixins...{
public:
  X(const Mixins&... mixins) : Mixins(mixins)... {}
};
X<A, B, C> c;

のように書くと、

class X<A, B, C> : public A, public B, public C {
public:
  X(const A& a, const B& b, const C& c) : A(a), B(b), C(c) {}
};

の意になります。

Unicode文字と文字列

<cuchar>で16bitと32bitの文字列をサポート。

char16_t* str16 = u"16bitの文字列";
char32_t* str32 = U"32bitの文字列";
[]