2010-11-01から1ヶ月間の記事一覧

boost::scoped_ptr を魔改造してみた

C++

boost::scoped_ptr は std::auto_ptr のより安全な代替として便利に使えるクラスですが、 release 出来ない 削除関数を指定できない 関数の戻り値として使えない 配列の時は scoped_array を使わなければならない 等、いくつか不満点があります。 幸いなこと…

Lua にタプルを実装したと思ったらリストだった。

Lua

Lua は素晴らしい言語なのですが、現実の言語である以上、使っていくと色々と不満点が出てきます。 local として宣言してない変数に触ると、暗黙のうちにグローバル変数として扱われる strict.lua を使っても、苦し紛れの解決でしかない 実行時チェックなの…

ある区間の上限/下限を求める

C++

STL の upper_bound / lower_bound を使ってみたらハマったので、日記のネタに。 結論を書くと、 std::upper_bound( first, last, x ) は、区間 [ iter, last ) が std::equal_range( first, last, x ) の上界となるような iter を、 std::lower_bound( firs…

ユーザ定義されたデストラクタを持つクラスのコピー自動生成が deprecated に

C++0xに素晴らしい変更が来たようです: 本の虫: C++0xにすごい変更が来た この変更により、初心者にありがちな間違いである、 class my_string { char* buf; public: my_string( char const* s ) { std::size_t const n = std::strlen(s); buf = new char[n…

C++0x の を C++98/03 の範囲で再現してみた

C++0x の で定義されている std::all_of 辺りが使いたかったので、 その辺を適当に実装したヘッダを作ってみました:http://gist.github.com/664418 実装した関数は以下の通りです: all_of any_of none_of find_if_not is_permutation copy_n copy_if is_pa…