2014年02月のlog
>> Site top >> weblog >> 月別アーカイブ >> 2014年02月のlog
最終更新日付:2014/02/01 00:00:00
再びノートPCの話
2014 年 02 月 03 日
新しいノートPC、通勤電車内で使っている。しかし、あれこれ気になることが出てきた、という話。
たまにはC++の話でも
2014 年 02 月 04 日
最近は Common Lisp ばかりなのだけれど、仕事でもプライベートでも C++ を時々使う。で、新しい C++ 標準をまだ実際に使っていないので、まだ色々と良くわからないことが多い。今回は、constexpr のことでも。
以前から使っている関数テンプレートに、countof というのがある。これは配列の要素数を取得するもので、自分が以前から使っている実装は以下のようなものだった。
template <int N, typename T> inline int countof( T const (&arg)[N] ) { return N; }
C++のラムダ式の話
2014 年 02 月 05 日
C++ 0x11 の目玉といえば、やはりラムダ式ではなかろうか。g++ でもって使ってみようとして、最初に書いたコードは以下のようなものだった。
int main( void ) { std::array<int, 10> arr; std::iota( arr.begin(), arr.end(), 0 ); std::for_each( arr.begin(), arr.end(), []( int x ) { printf( "%d\n", x ); } ); return 0; }
マニュアルという苦行
2014 年 02 月 09 日
CL-STL のマニュアルを書いている。目下のところ、想定される読者は自分ひとりだけ、という悲しい行軍。
まぁ、想定される読者が自分だけだと言っても、現時点でも自分で使う際にはソースコードを見て使い方を確認したりしているので、マニュアルを作成することには十分意味はあるんだけどな。
Cでmallocの回数を節約する話
2014 年 02 月 12 日
何の本で読んだか忘れてしまったのだけれど、「長さ1の char 配列を使って、malloc の呼び出しを節約する」というテクニックがあった。久し振りに思い出したので、今日はそれについて書こう。最初のコードはこんな感じ。
typedef struct { int size; char buf[1]; } foo; foo* create_foo( const char* p ); int main( void ) { foo* pFoo = create_foo( "hello world" ); puts( pFoo->buf ); free( pFoo ); return 0; }
ファンクタの悩み
2014 年 02 月 19 日
CL-STL のマニュアルを書いていて気付いた。そういえば、ファンクタが物凄くおろそかになっている。
というか、以前に一度「もうクロージャでいいじゃん」と思い切ってしまって、それっきりだったのだ。何を思い切ったのかというと、クロージャでは STL における関数オブジェクトのコピーの挙動を完全には模倣できないことだ。今回(と以後数回?)はこれについて書くことにしよう。
ファンクタの悩み - 2
2014 年 02 月 20 日
前回からの続き。
とりあえず、ファンクタの値渡しを模倣するために CLOS の使用を模索し始めた。今回は、ちょっと心配なパフォーマンスを調べてみようという話。
ファンクタの悩み - 3
2014 年 02 月 22 日
前回からの続き。
話を戻そう。そもそも、ファンクタを値渡ししなければならない理由とは何か。それをしないと、どういう局面で STL と挙動が異なってしまうのか。今回はそれについて。
Kindle購入
2014 年 02 月 22 日
自分用じゃないんだ。カミさんへのプレゼント。Amazon Kindle paperwhite。
Copyright(C) 2005-2021 project-enigma.
Generated by CL-PREFAB.