タグ

ブックマーク / cpplover.blogspot.com (43)

  • 本の虫: C++0xの新機能のリスト

    どうやら、C++0xのを執筆することになった。 ふと思えば、今まで一度も、C++0xの新機能がどのくらいあるのかということを考えたことがなかった。規格の変更は、もちろん大量にあるのだが、その中で、特に知っておくべき変更や追加というのは、どのくらいあるのか。整理するために、リストアップしてみた。このリストに載っていない機能や、既存の規格に対する変更で、特にユーザーも知っておくべきものがあれば、知らせて欲しい。 C++0xはまだドラフト段階だが、確実にこれは大きく変わらないだろうという機能は、かなりある。逆に、これはちょっとまだ分からないという機能もある。 言語機能 Rvalue Reference auto delctype static_assert Template Aliases extern template Variadic Templates Initializer lists

    tanakaBox
    tanakaBox 2010/01/03
    大量なんだなぁ。
  • 本の虫: lambda 完全解説

    目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う物のC++0xプログラマになれるだろう。 lambdaとは何ぞや lambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。 lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。 lambdaを定義しよう lambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ

    tanakaBox
    tanakaBox 2009/12/15
    説明はわかりやすい。
  • 本の虫: rvalue reference 完全解説

    目的 この記事は、C++0xのrvalue referenceを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からrvalue referenceを恐れることなく使う物のC++0xプログラマになれるだろう。 lvalueとrvalueについて Cの時代では、lvalueとrvalueの違いは、代入演算子の左側か右側かという違いだけであった。つまり、left hand value, right hand valueの略である。従って、訳語も、左辺値、右辺値であった。C++においては、これはもはや正しくはない。従って、右辺値、左辺値というのも、誤訳である。それ故に、ここでは、これ以上、左辺値、右辺値という名称を使用しない。 誤解を恐れずにいえば、lvalueとは、明示的に実体のある、名前付きのオブジェクトであり、rvalue