日記的「駄目」プログラミング Yet Another Hacking Life

Archive for the ‘C++’ Category

std::tupleと構造体の相互変換(任意の型でのget<i>の実現)

08.23.2011 · Posted in C++, C++11, プログラミング

メタプログラミングの練習をかねて。 既存の構造体とstd::tupleを非侵襲的に相互変換するスマートな方法を考えてみる。ちなみにboostは使わない派。 とりあえずコード。 #include <iostream> #include <tuple> #include <typeinfo> // 構造体をget<>に対応させるための準備 template<typename T0, typename H0, typename ...Args0&g...

C++0xのtupleを使って関数から複数の戻り値を返す

12.05.2010 · Posted in C++, プログラミング

C++0xのSTLにはtupleテンプレートクラスが導入され、任意の型の任意の要素数の組を必要に応じて定義できるようになった。これを関数の戻り値とすることで複数のオブジェクトを返せないかというお話。ひどくいまさら感のある話題だとも思うし、自分は勉強の仕方がいい加減なので穴もあると思う。ただ、ここ最近、気になってしかたがなかった(使ってみたかった)機能ではあるのでまとめておく。

Matcha合宿、秩父でだらだらしている話

08.12.2010 · Posted in C++, Matcha, 日記

現在、秩父市の夢庵でこの日記を書いている。3泊4日でホテルに泊まり、一人勉強するという一人合宿である。今日は3日目。 勉強と言ってもやれたことはC++ Coding Standardsを読み直しただけだが。適当な場所がなくてほとんどドライブになってしまった。まあ休養も兼ねてるからいいんだけどさ。 Matchaの数学ライブラリに手をつけ始めていて、行列クラスの近代的なデザインに悩んでいた。上記の本を一通り読んで妥協すべきところと、実装できるところの落としどころが見えたのが収穫。 いわゆるC++の定...

Matchaの進捗と言語の話

06.30.2010 · Posted in C++, Matcha, プログラミング, ロボット

相変わらず週末だけのコーディング。先週末は本格的に体調を崩してキーバリュークラスのコピーコンストラクタを書いただけだった。 最近悩んでるのが言語とコンパイラ。現在はC++・GCC 4.4で開発している。 で、C++0xを使いたい。Matchaが形になるのは今年の秋か冬だし、そのころにはC++0xの仕様も確定してるだろう(?)。GCC 4.6ならかなりの仕様が実装されるだろうし。長期プレイで作っていくなら未来に普及する現在の最新を取り入れたいところではある。 フリーなコンパイラでいうとGCCとLL...

Matchaの進捗

06.13.2010 · Posted in C++, Matcha, プログラミング, ロボット

相変わらず週末に数時間という状況が続いている。そのうえ最近は週末にイベントが立て込んでてコーディングが進まない。 イベントクラスに乗せるデータはキーバリューベースで実装することにしたのは前に書いたっけ?とりあえずキーバリューのクラスを実装して、タイマイベントポートのイベントをキーバリューベースで取得するサンプルソースが書けるようになった。キーバリューのディープコピーが実装されていないところがバグとして残っている。スレッディングとスレッド間のイベント送受信まで実装するのがマイルストーンになるかな。...