銀天随筆集 このページをアンテナに追加 RSSフィード Twitter

2011-11-17 あと必要なのは Rvalue refs for *this と Delegating ctors かな.

GCC-4.7 に Alias declarations (Template aliases) が実装されていた

いつの間にか GCC-4.7 に Alias declarations (Template aliases) が実装されていたようです:

http://gcc.gnu.org/projects/cxx0x.html


これにより,

// my_vector<T> を std::vector<T, my_allocator<T>> の代わりに使える
// 関数テンプレート等で型推論させられない弱点はあるが
template< class T >
using my_vector = std::vector<T, my_allocator<T>>;

// テンプレートではない普通の typedef の代わりとしても使える
using vec_t = my_vector<int>; // typedef my_vector<int> vec_t; と同じ
// 関数等の ややこしい型を typedef する場合に重宝する
using function_t = void ( vec_t const& ); // typedef void function_t( vec_t const& ) と同じ

とか書けるようになります( gcc-4.7-20111112 で確認).


GCC-4.7 には Non-static data member initializers や Explicit virtual overrides (final, override) も導入されたので,

今までに比べて地味に(しかし確実に)コードが書きやすくなっていて,素敵.

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証