C++

ary[-1]の動作

ary[-1]の動作 配列の-1番目の要素を指定した場合何が起こるのかちょっと興味あったので調べてみた Pythonの場合 我らがPythonは後ろから1番目の意味になる。 ary = [1,2,3] print(ary[-1]) # 3 Rubyの場合 RubyもPythonと同じ仕様 ary = [1,2,3] puts ary[-…

補足:unique_ptrのパフォーマンスについて

C++

unique_ptrを使ったコードと使わないコードのアセンブリをgccに吐かせてみると、-O0の場合はunique_ptrを使うコードの方は関数呼び出しが1回余計に挟まることで、クリティカルなオーバヘッドになっている。一方gccで-O2を指定してアセンブリを吐かせると、un…

C++で大規模な配列追記のパフォーマンス

C++

はじめに @__boronium による 「じゃあC++はどうなの?」 という疑問にお答えするコーナー。元のPython版はhttp://d.hatena.ne.jp/ponkotuy/20111216/1324021461 でどうぞ。ちなみにg++4.6.1 -O2 -std=c++0xでコンパイル。 はじめる前に補足 微妙に間違った…

gccgoの底力を見た

はじめに Go言語自体、文法は結構気に入ってたんだが、標準コンパイラの速度が割と残念だなーというのがFirstImpressionだった。という訳でgccgoに期待していた訳だが、今回使ってみたので結果を載せてみる。 gccgoのインストール これほど遅れた理由は、gcc…

BoostでMPIを弄ってみる

C++

初めに 初心者にとって優しくないことで定評のあるBoostだが、MPIラッパーがあると聞いては、並列計算の専門家(を目指す)私が黙ってはおれない。という訳で早速弄ってみたのだが。 必要なパッケージ(Ubuntu) libboost_mpi1.40-dev openmpi-bin 色々試し過…

Visual C++でOpenMP

C++

Visual Studioは標準でOpenMPをサポートしている…。まあgccでも大分前からサポートしているから当然だね。…と思うんだが、無料のExpress版では対応していない。他にも、今では当たり前となりつつある64bitに非対応だったりと、実にプログラマとしては残念な…

(読んだ) C++ Cording Standards

今日秋葉原で暇だったので、ひたすらリナカフェでC++ Cording Standardsを読んでいた。内容的には、C++で推奨されるコーディング規則の纏めである。そのテーマの内容は私としては、 ハァ?何を今更言ってるんだ? そーなのかー (そもそもその機能を使ったこ…