2014年02月のlog - project-enigma

2014年02月のlog

>> Site top >> weblog >> 月別アーカイブ >> 2014年02月のlog

最終更新日付:2014/02/01 16:49:46


再びノートPCの話

2014 年 02 月 03 日

新しいノートPC、通勤電車内で使っている。しかし、あれこれ気になることが出てきた、という話。

Read more

 

たまにはC++の話でも

2014 年 02 月 04 日

最近は Common Lisp ばかりなのだけれど、仕事でもプライベートでも C++ を時々使う。で、新しい C++ 標準をまだ実際に使っていないので、まだ色々と良くわからないことが多い。今回は、constexpr のことでも。

以前から使っている関数テンプレートに、countof というのがある。これは配列の要素数を取得するもので、自分が以前から使っている実装は以下のようなものだった。

template <int N, typename T>
inline int countof( T const (&arg)[N] ) {
    return N;
}

Read more

 

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;
}

Read more

 

マニュアルという苦行

2014 年 02 月 09 日

CL-STL のマニュアルを書いている。目下のところ、想定される読者は自分ひとりだけ、という悲しい行軍。

まぁ、想定される読者が自分だけだと言っても、現時点でも自分で使う際にはソースコードを見て使い方を確認したりしているので、マニュアルを作成することには十分意味はあるんだけどな。

Read more

 

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;
}

Read more

 

ファンクタの悩み

2014 年 02 月 19 日

CL-STL のマニュアルを書いていて気付いた。そういえば、ファンクタが物凄くおろそかになっている。

というか、以前に一度「もうクロージャでいいじゃん」と思い切ってしまって、それっきりだったのだ。何を思い切ったのかというと、クロージャでは STL における関数オブジェクトのコピーの挙動を完全には模倣できないことだ。今回(と以後数回?)はこれについて書くことにしよう。

Read more

 

ファンクタの悩み - 2

2014 年 02 月 20 日

前回からの続き。

とりあえず、ファンクタの値渡しを模倣するために CLOS の使用を模索し始めた。今回は、ちょっと心配なパフォーマンスを調べてみようという話。

Read more

 

ファンクタの悩み - 3

2014 年 02 月 22 日

前回からの続き。

話を戻そう。そもそも、ファンクタを値渡ししなければならない理由とは何か。それをしないと、どういう局面で STL と挙動が異なってしまうのか。今回はそれについて。

Read more

 

Kindle購入

2014 年 02 月 22 日

自分用じゃないんだ。カミさんへのプレゼント。Amazon Kindle paperwhite。

Read more

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.