lambdaに関するdotsargのブックマーク (5)

  • C++に欲しい機能 - C++と色々

    C#書いていて、これC++にも欲しいなぁ、と思ったり、普通にこういう機能欲しいと思ったものです。 ネストした名前空間 今のC++ではこう書かないといけません。 namespace hoge { namespace foo { ... } } をこう書けたら良いなぁ、と思いました。 namespace hoge::foo { ... } enumの各種サポート関数 enumと文字列の相互変換 enum型の要素数を取得する関数 ユーザー定義属性(user defined attributes) 欲しいです。 ラムダ式の再帰 ラムダ式は関数オブジェクトなので、関数内部で、(*this)()と書いて再帰できるようにして欲しいです。 struct factorial { int operator()(int n) { return n == 0 ? 1 : n * (*this)(n - 1); }

    C++に欲しい機能 - C++と色々
    dotsarg
    dotsarg 2017/08/04
    ラムダ式での再帰呼び出しを行う方法が記載されている。
  • ラムダオブジェクトを static 変数で保持する時の注意 - C++でゲームプログラミング

    Lingr の C++ 部屋で話題になったのですが、参照キャプチャしたラムダを static 変数で保持するのは未定義の動作になることがあるので注意しましょうという話。 さて、話題になっていたのは次のようなコードです。 void func(int const& i){ static auto f = [&]{ std::cout << i << std::endl; }; f(); } func(1); // => 1 func(2); // => 1 呼び出した f() は両方共 1 が出力されます。 ここで引数を int に変えてみるとどうでしょう。 // 引数を int に変更 void func(int i){ static auto f = [&]{ std::cout << i << std::endl; }; f(); } // 最初のコードと結果が違う func(1); /

    ラムダオブジェクトを static 変数で保持する時の注意 - C++でゲームプログラミング
  • ラムダ式 - C++入門

    ラムダ式 (lambda expression, 無名関数(anonymous function, nameless function)、匿名関数)とは、関数を定義するための記法、文法です。 読み方 ラムダ式 らむだしき lambda expresssion らむだ えくすぷれっしょん 無名関数 むめいかんすう anonymous function あのにます ふぁんくしょん nameless function ねいむれす ふぁんくしょん 匿名関数 とくめいかんすう 概要 ラムダ式は、無名関数 ラムダ式は、関数オブジェクトで、ラムダ式は、生成されたクラスのoperator()になります。 ラムダ式は、std::functionに代入できます。 ラムダ式は、STLの引数に使用できます。関数の引数として、ラムダ式を直接書けます。 以前は、関数をその場で定義できず、別途定義したものを利用していま

  • Lambda expressions in C++

    In C++11 and later, a lambda expression—often called a lambda—is a convenient way of defining an anonymous function object (a closure) right at the location where it's invoked or passed as an argument to a function. Typically lambdas are used to encapsulate a few lines of code that are passed to algorithms or asynchronous functions. This article defines what lambdas are, and compares them to other

    Lambda expressions in C++
  • C#ラムダ式 基礎文法最速マスター - @IT

    ■0. まえがき 稿では、小さいテーマではあるが、まだまだ慣れ親しんでいない開発者が少なくないと考えられる「ラムダ式(C#)」についての基礎文法を簡潔にまとめる。「ラムダ式、どう書くんだっけ?」という場合のリファレンスとして活用していただけるとうれしい。また、ラムダ式を敬遠しているという方は、まず稿が学び始める取っ掛かりになるかもしれない(もちろん稿の説明は充実しておらず、すべてを学べるわけではないので、じっくり学ぶには「連載:C# 3.0入門 第1回 ラムダ式」を参照してほしい)。 今年(2010年)に入ってインターネット上では、プログラミング言語の基文法を簡潔にまとめた「○○言語 基礎文法最速マスター」(以降、最速マスター・シリーズ)というブログ記事が多数投稿されている。参考までに、そのいくつかを示そう(そのほかについては、こちらを参照されたい)。 C#基礎文法最速マスター:n

    dotsarg
    dotsarg 2014/07/31
    構文などが掲載されている。
  • 1