2003-10-28から1日間の記事一覧

最終的に具体的な対策

……は、ありません(爆)。標準C++を使う間は、我々はインクルードガードを使い続けるしかないのです。あきらめろ! あきらめるんだ! 俺(爆)!

ソースコード互換性なんてクソクラエだ

……などと言ったらCPPコミュニティに袋叩きにあいそうなので絶対に言いません(爆)。しかしですな、現実的に実現出来ない物を#ifdef分岐で個別対応してまで「どのプラットフォームでもコンパイル可能」と言うのはどうかと思うのですよ。 それよりは、それぞ…

現実的にはどうか

Visual C++では"#pragma once"というプリプロセッサ命令をヘッダファイルに入れる事によって、インクルードガードを実現します。これは素晴らしいギミックです。欲を言えば、「ヘッダファイルはすべて#pragma onge扱いにする」というオプションを用意して欲…

他の言語ではどうか(C#を例にして)

C#ではそもそもヘッダファイルという概念がありません(C++でのクラスがすべてインラインで記述されていると考えて下さい。こっちの方がずっと自然です)。当然インクルード文もありません。プロジェクトに含まれるソースファイルは一度すべて一本のファイル…

何故必要ないのか?

そもそも、何故C++ではヘッダファイル(.h)と実装ファイル(.cpp)が分離されているのでしょうか? 入門書の中には「実装を隠蔽してインターフェイスを公開する為」とか書いているかもしれません。これは「嘘」です。少なくとも、後付けの理屈であることは間違…

ヘッダファイルはどこへ向かっているのか

ヘッダファイルがどのように使われるかはわかりました。では「何故」ヘッダファイルが必要なのかという事を検討しましょう。まず、このような小細工が必要な言語は、現代プログラミング言語ではC++しか無いという事を強調しておきます。これはくるしまぎれの…