タグ

2013年10月24日のブックマーク (4件)

  • 野良C++erの雑記帳

    Object.entries() - JavaScript | MDN Object.entries は、オブジェクトに含まれる key と value の組み合わせを配列にして返してくれる関数で、 Javascript でコードを書いてるとお世話になることも多いと思います。 しかし、これを Typescript で使おうとすると、型が微妙になってしまうという問題点があります: type Hoge = { a: string; b: number; }; function f(x: Hoge) { const entries = Object.entries(x); // entries の型は [string, string | number][] for (const [key, value] of entries) { // 処理 } } これを解決するために、以下のような手法を使う

    野良C++erの雑記帳
  • C++14 のラムダ式 完全解説 中編 - 野良C++erの雑記帳

    この記事では,前編に引き続き, C++14 のラムダ式について説明していく. 前編では,ラムダ式に対する大雑把な説明と,ラムダ式の持つ型推論機能を紹介した. この記事では,ラムダ式の最も重要な機能の一つである,変数のキャプチャについて説明したい. なお,初めて この記事を読む方は,先に前編を読むことをお勧する. 目次(再掲): ラムダ式の基礎 (前編で解説) ラムダ式の型推論(前編で解説) 変数のキャプチャ(この記事で解説) ラムダ式の活用法(執筆中) マニア向けの補足(執筆中) 変数のキャプチャ ラムダ式により生成されるクラスの operator() の関数体は, this ポインタやメンバ変数・関数の扱いを除き,ラムダ式の体と同じコードになる. // 例えば, auto f = [] (int x, int y) { return x + y; } // 上のコードは, struc

    C++14 のラムダ式 完全解説 中編 - 野良C++erの雑記帳
    y_r
    y_r 2013/10/24
  • C++14 のラムダ式 完全解説 前編 - 野良C++erの雑記帳

    C++14 の Committee Draft が公開された. C++14 は基的には C++11 のマイナーバージョンアップであるが,バグフィックスのみを行っている訳ではなく, C++11 の時点で微妙に使いにくかった機能,特にラムダ式については,大きな機能追加が行われている. そこで, blog では,このエントリから数回に分けて, C++14 のラムダ式について説明してみることにする. 拙い文章になるかとは思うが,読者の理解の助けになれば幸いである. なお,これらの記事を書くにあたって,読者に対して C++11 のラムダ式に対する知識を要求しないように心がけたが, もしかしたら,説明不十分であり,分かりにくい部分があるかもしれない. そのような場合には, の虫: lambda 完全解説 等, C++11 のラムダについて書かれた記事は多いので, それらの記事を読んでみることを

    C++14 のラムダ式 完全解説 前編 - 野良C++erの雑記帳
    y_r
    y_r 2013/10/24
  • 本の虫: lambda 完全解説

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

    y_r
    y_r 2013/10/24