No Such Blog or Diary

«Prev || 1 | 2 | 3 |...| 936 | 937 | 938 |...| 1252 | 1253 | 1254 || Next»

gcc 4.5.0 (experimental) でラムダ式使ってみた

gccのsvnにある4.5.0ならc++0xのλ式が使えるのでgccをコンパイルしてインストールしてみた.

とりあえず std::transform を一行でかけるのかなぁと以下のコードを書いてコンパイル.オプションに -std=gnu++0xを指定.

#include <iostream>
#include <algorithm>
#include <vector>
 
int main(int argc, char *argv[])
{
  std::vector<int> x;
  int n = 10;
  for(int i = 0; i < n; i++) x.push_back(i);
  for(auto it = x.begin(); it != x.end(); it++) std::cout << " " << (*it);
  std::cout << std::endl;
  std::transform(x.begin(), x.end(), x.begin(), [](int a) { return (a + 1) ^ 7;});
  for(auto it = x.begin(); it != x.end(); it++) std::cout << " " << (*it);
  std::cout << std::endl;
  return 0;
}

そしたら普通にコンパイルが通って,実行したら配列要素がちゃんとインクリメントされていた.

ちなみに,上のプログラムのtransformのメインループは

L42:
        movl    (%rax), %edx
        addq    $1, %rcx
        addl    $1, %edx
        xorl    $7, %edx
        movl    %edx, (%rax)
        addq    $4, %rax
        cmpq    %rcx, %rbx
        ja      L42

のようにコンパイルされた(-O3 オプションで).λ式だと変なオーバーヘッドが入らないらしい.boostのlambdaないしfunctionsあたりだと変なオーベーヘッドが掛かってたけど,c++0xのλ式だとその心配がなく簡単に使える.ただし,このλ式を変数に代入したりしたときにどうなるかはまだ試してない.

こんなこともあろうかと

セミナーの欠席者が出ても良いようにとプレゼンの用意をしておいた.とはいえ比較実験が追いついていないので内容的にもあまり新しくなかったのだが…

さて,とりあえずc++0xのラムダを試そうかね.gccも4.5.Xでラムダが使えるみたいだし(4.4.Xでも使えるとか言われたがいろいろ見る限りでは不可能にしか見えない).

新しい椅子

椅子の背もたれが真っ二つに割れて久しく,ガムテープで止めとくのも我慢ならなくなったので新しい椅子を買ってみた.

丸い.

いまのところ座り心地は悪くない.とはいえ今までのが最悪だっただけかもしれないが…

エレベーターを降りるとき

待ち行列ができているのではやく降りようと大きめの一歩を踏み出したら,二歩目に目の前の人の靴を後ろからスコンッと蹴り飛ばしてしまった.

あー…

前方不注意というか予想より前の人の踏み出しが鈍かったというか.注意が足らん.

立冬とか

最近めっきり寒くなったなぁと思いつつ長袖だとやっぱり暑かったり.全力で歩行するから暑いだけかもしれないけど.

さて,近場の紅葉がそろそろ見られる頃になったのだろうか?

はちみつ

先週あたり治りにくい位置に口内炎ができてうっとうしかったので,ネットで調べてでてきた「はちみつとココアを練ったものを塗る」を試してみた(ココアもはちみつも混じり物のない純粋なやつであるべし).

結果:とりあえず邪魔だった口内炎が1日半で治った.

効果があったかどうかは分からないが,とりあえずパッと治ったのは事実.ちなみにはちみつを直接塗ると激痛らしい.ココアペーストも多少痛かったような気はする.

そしてはちみつ美味しい.風邪の季節なので,のど飴舐める代わりにはちみつを素のまま舐めるってのもありなのかなぁと.そんなことを考えながらちょくちょく舐めてたら4日で500gのボトルが半分消費された.コストパフォーマンスが良いのかどうかは分からない.

ところではちみつは虫歯になるのかならないのか? 殺菌作用があるらしいけどそれ以上に糖なのでアウトかなぁ.

«Prev || 1 | 2 | 3 |...| 936 | 937 | 938 |...| 1252 | 1253 | 1254 || Next»
Search
Feeds

Page Top