2008-10-01から1ヶ月間の記事一覧

プログラミングのセオリー−矢沢久雄

郵便で送られてきた電脳会議 Vol.127−技術評論者の新刊案内で「ツールいらずのデバッグテクニック」として、printfデバッグが紹介されてます。 これが「プログラミングのセオリー」(副題:プログラムの価値を高める”定石”を学ぶ)という本で解説されてると…

unix time と2038年問題

C++

「不正な時刻が悪さをする」ということで聴いてみると、いわゆるunix timeとして正しく扱えないということのよう。ライブラリがエラーを返すらしい。とあるRTOSの開発環境の話であるけれども、手元にコンパイラでどうなるか調べてみました。 Visual C++ 2005…

昔々あるところに・・・−中場利一

4年前くらいだったか、岸和田少年愚連隊を読み、サラリーマン・ノークライを途中で止めて以来、久しぶりに中場利一のものを読みました。 いつもどおりといった、馴染み感のあるエッセイ。

Effective C++

C++

30項くらいまでパラパラと。 使いこなしのヒントなので、使わないとだめだなと思う。当たり前ですが。 RS232Cで接続された機器とのやりとりを簡単にできるスクリプト言語を作ってみようかな。MS-DOSのころはまだしも、Windowsになってちょっと面倒になった…

Accelerated C++第15章の疑問解消

実装クラス(Pic_base)で、ハンドルクラス(Ptr)をfriend宣言すればOKでした。 cppll_novice MLに感謝。(でもへんな投稿にしてしまった orz)

次は

C++

Effective C++にしよう。

Accelerated C++第15章に対する疑問

p274の訳注*1に疑問あり。 仮想デストラクタをつけたとあるが、仮想になっていない 仮想だろうが、仮想でなかろうが、privateデストラクタなのでコンパイルできない 原文にあたれないけれど、 継承を使い、派生クラスのポインタをdeleteしているので、本来は…

風の歌を聴け−村上春樹 (村上春樹全作品1979-1989①)

大昔に読んだ片岡義男のような印象もあるけど、よくわかりません。 デレク・ハートフィールドという作家が出てきて、読んでみようかと思いAmazonで検索しても出てこず。これは架空の作家なのですね。

Accelerated C++第16章

2005年に続いて、2回目読了。 お言葉 本棚に本を置いても、プログラマの腕は上がらない もっと学ぼう プログラミング言語C++ 第3版 STLによる汎用プログミング C++再考 本棚をざっと見るとC++関連では ロベールのC++入門講座 ロベール プログラミング…

Accelerated C++第15章

文字絵の例でインタフェースと実装の分離、実装部分のカプセル化について説明している。実装部分のカプセル化については、コンストラクタなどをprivateにすることで隠しているわけだが、その分多くのfriendが必要になってしまってて、正直そこまでのカプセル…

Accelerated C++第14章

お言葉 2つの独立した抽象クラスであるべきものを1つのクラスにするということは、しばしばデザインの弱さを示しているのです。 ハンドル オブジェクトへのポインタを保持する ハンドルが結び付けられているオブジェクトの型とは独立している ポインタと同…

Accelerated C++第13章

初歩的なハンドルクラスが出てきて面白くなってきた。 派生クラスのオブジェクトの生成 派生クラスのメンバも基底クラスのメンバも同様に全オブジェクトの分のメモリを確保 基底クラスのコンストラクタを実行し、オブジェクトの基底クラス部分を初期化する …

Accelerated C++第12章

3のルールの変形 一般に、デストラクタが必要でないクラスでは、コピーコンストラクタと代入演算子もわざわざ書く必要はない メンバ関数にすべきものとそうでないもの 入力、出力演算子ははメンバ関数にできない friend 宣言 クラス定義のどこに書いてもか…

allocatorクラス

C++

ヘッダにある、allocatorクラス。 これの動きは メンバ関数 construct() はコンストラクタ呼び出し メンバ関数 destoy() はデストラクタ呼び出し 非メンバ関数の uninitialized_copy() はコピーコンストラクタを呼び出す 非メンバ関数の uninitialized_fill(…

Accelerated C++第11章

std::vector に相当する Vec を定義する話。 explicit 引数が一つだけのコンストラクタのみに適用できるもの。明示的にコンストラクタ呼び出しが必要なことを指定するもので、非明示的な変換によるコンストラクタ呼び出しを防止する。詳しくは12章へ。 演…

やがて哀しき外国語−村上春樹

「うずまき猫のみつけかた」のあとがきによれば、時系列的に「うずまき・・」の前が、この「やがて哀しき外国語」とのこと。 中では大学的スノビズムの興亡というのが、ごくわずか自分自身が見聞きしたアメリカの「実体」に近い気がして興味深かった。 梅干…

Accelerated C++第10章

ポインタはランダムアクセス反復子の一種 n 要素の配列 a に対し a + i が有効なのは 0≦i≦n のとき a + i が要素を指すのは 0≦i<n のとき a + n は最後の要素の1つ後(container.end() と同じ) 文字列リテラルとは文字数より1つ大きいサイズの const char…

Accelerated C++第9章

一通り15章まで読んでしまったので、落穂拾い的なメモ constキーワードはメンバ関数の宣言と定義の両方に必要 オブジェクトの状態を変える関数はメンバ関数とする 一般に内部を公開するつもりの小さなデータ構造ならstructを使う クラスオブジェクトの生成…

心霊探偵八雲3 闇の先にある光−神永学

文庫版の3作目。一気に読んでしまいました。 住んでいる市の図書館でもこのシリーズは人気で常に予約が入っている状態なので、文庫が出るたびに買うことになりそう。あとがきを読むと改稿もされているようなので、それはそれでよいかなと思う。

iteratorを引数にするジェネリック関数 iterator_traits

C++

例えば2つのイテレータを受け取って平均を返す関数を書こうとすると、イテレータが指し示す型の情報がないと作れませんね。 こんなときは iterator_traits というものを使って書くようです。 例えば平均値を求める関数を書いてみると、次のようになります。…

前置・後置のインクリメント、デクリメント/oprator++() operator--()

C++

Accelerated C++の中で変数をインクリメントする場合で、その値を使用しない場合はすべて前置のインクリメント演算子が使用されています。 for (int i = 0; i < 10; ++i) 僕自身はC言語を覚えてから標準では後置のものを使用していますが、どちらが多いので…

std::endl

C++

これまで、何となく気持ち悪いと思いつつ std::endl を使ってきました。 この気持ち悪さというのは「単に改行をしたい」という場合と「バッファフラッシュをしたい」場合は異なるということ。 std::endl の実装では、 // Microsoft Visual Studio 2005 い含…

うずまき猫のみつけかた−村上春樹

「肩の力を抜いたのんびりとした感じ」とあとがきにあるとおりの内容。 悪くはないけどね。良くもないです。 良いかどうかは絶対的主観(変なことば)ですが。

村上朝日堂はいかにして鍛えられたか−村上春樹

村上春樹のエッセイはいいですね。僕は好きです。 テネシー・ウィリアムズはいかにして見捨てられたか 何かに対してネガティブな方向の啓蒙は、場合によっていろんな物事を、ときとして自分自身をも、取り返しがつかないくらい損なってしまうということだ。 …

Accelerated C++ 第8章

反復子 全部で5種類 入力反復子 出力反復子 前方向反復子 双方向反復子 ランダムアクセス反復子 入力反復子 vector<int> v; copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(v)); 出力反復子 copy(v.begin(), ve.end(), ostream_iterator<int>(cout, </int></int></int></int>…

C++0xとかTR1とかATL/CLRとかいろいろあるようだ

C++

Visual Studio 2008からTR1を取り込んでいるとか世の中的には動いている模様。 これまでBorland C++を使用してたけど、何件かトラブルが続いてやや信頼感が低下。 C++ BuilderのGUIアプリ作成の簡便さは捨てがたいけど、やっぱり.NETからC#への流れなのかな…

STL関連の情報メモ

C++

STL超入門 http://www.jah.ne.jp/~naoyuki/Writings/STL.html Standard Template Library プログラミング on the Web http://www005.upp.so-net.ne.jp/episteme/ Rogue Wave Software 標準 C++ ライブラリ・ユーザーズガイド http://docs.sun.com/source/820…

Accelerated C++の7章まで

C++

ここまでで一通りSTLを学んだことになる。 ファイル入出力が(エラー・ログ含む)標準入出力だけなので、用途は限定されるものの、日常のテキストベースのプログラムは書ける。 ファイル入出力も ifstream / ofstream オブジェクトを生成すれば、テキストフ…

Accelerated C++ 第7章

連想コンテナ awkで慣れてるので特に目新しくはない。 ただ、 連想コンテナの要素はいつもキーに従って配列させられている は知らなかった。 nrand() 他でも使えそう。 課題 省略。

Accelerated C++ 第6章 続き

関数を表すパラメータ定義 慣れてないので気持ち悪いが、明示的にポインタで定義しなくても良い。 アルゴリズムの関数を使い始めると、結構関数(のポインタ)を引数に渡すことが多くなりそう。 課題 本中のソースに関連するもの、面白いくないものはばっさ…