2006-05-01から1ヶ月間の記事一覧

SDLその2

ちょっと分かった。

SDL

折角なのでSDLを触る。 なんというかとりあえず的なものなので酷いコード。 import SDL; void main(){ SDL_Init(SDL_INIT_SDL_Surface* screen; screen = SDL_SetVideoMode(120, 70, 8, SDL_SWSURFACE); SDL_Surface *image = SDL_LoadBMP("test.bmp"); SDL_…

今日はここまで

もう一通り言語使用には目を通した気がする。よくわからない物というのはなくなったけれど、それをどう使えばいいかはまだよく分かっていない。 言語使用には書いてないスタイルとかその他諸々も含めて言語だよなあとかぼんやり思った。当然か。

with文

素敵かもしれない。 import std.c.stdio; class Hoge{ void hoge(){ printf("hoge was called\n"); } void hige(){ printf("hige was called\n"); } void hage(){ printf("hage was called\n"); } } void main(){ Hoge hoge = new Hoge(); with(hoge){ hoge(…

ユーザー定義のプロパティ

新たにプロパティを定義することもできる。 import std.c.stdio; class Hoge{ this(){ m_hoge = 1; } int hoge(){ return m_hoge; } int hoge(int value){ return m_hoge = value; } private: int m_hoge; } void main(){ Hoge hoge = new Hoge(); printf("h…

Unu is Not Isobeyaki.

英語の課題が終わってないので今日はおやすみ。

終わった

寝る。 とりあえずやっておくことメモ。Phobos ユーザ定義のプロパティ DBCと継承 foreach with scope リンケージ in out inout。

事前・事後条件

inとoutとbody。なんだか微妙げ。 import std.c.stdio; int hoge() in { printf("in\n"); } out (result){ printf("out\n"); } body { return 0; } void main(){ hoge(); }一番外にカッコがないのが不自然に見えて仕方が無い… 今日はおしまい。

おしまい

英語の課題がボクを待っている。

null

多分「0」でも「((void*)0)」でもなくてnullはnull。

スレッド

サンプルがなくて困る…newして関数ポインタを渡すか、委譲。多分Threadを継承してint runをオーバーライドしてもOK。 startで走らせてwaitで待つ。普通。 import std.thread; import std.c.stdio; int threadA(void* p){ for(int i = 0; i < 20; i++){ print…

関数のネスト

果てしなくどうでもいい…とか言ったら叱られるんだろうか。 import std.c.stdio; int hoge(int a){ int hige(){ return 5; } return a + hige(); } void main(){ printf("%d\n", hoge(3)); }よいしょ。 C:\d>nest 8やっぱりどうでもよかった。まあきっとクロ…

そういえば

space4個からtabに。

ミックスイン

RubyのMixinとは割と違う感じ。RubyのMixinのようにも使えるけど。 template内のスコープはmixinされた時点での物らしいのでこういうヘンテコなコードが書ける。 import std.c.stdio; int hige = 1; template Hoge(){ int hoge(){ return hige; } } void mai…

インターフェイス

一人でコード触る分にはあんまり必要性を感じない。というかJAVA。

プロパティ

使う分にはメンバ変数にアクセスするのと変わらない。 import std.c.stdio; class Hoge{ int hoge = 5; short hige; } void main(){ Hoge hoge = new Hoge(); printf("int hoge : %d, %d %d\n", hoge.hoge.init, hoge.hoge.max, hoge.hoge.min); printf("sho…

クラス不変条件 invariant

素敵機能の予感。 import std.c.stdio; class Hoge{ void yeah(){ printf("yeah\n"); } invariant{ printf("invariant called\n"); } } void main(){ Hoge hoge = new Hoge(); hoge.yeah(); }実行。 invariant called yeah invariant calledあれ、コンストラ…

auto属性とprintf

auto属性のテスト。 import std.c.stdio; class Hoge{ char[] name; this(char[] n){ name = n; printf("%s constructor called\n", name); } ~this(){ printf("%s destructor called\n", name); } } void main(){ hoge(); printf("main end\n"); } void hog…

解決

なんてことはない。main関数の定義に問題があった。 「void main(){ ... }」の時はreturn文省略化らしい。なるほど。 確か、C++では「void main(){ ... }」は標準じゃなかったと思うけれどDでは合法。 mainの宣言に関してはこの辺 → http://www.kmonos.net/a…

mainのreturn省略

Cはよく覚えてない(多分できない)けどC++ではできたはず。Dじゃダメなのかなあ。

-wスイッチ

C:\>dmd hello.d -w warning - hello.d(3): function hello.main no return at end of functionなるほど。no return at end of functionに関してはこの辺 → http://www.kmonos.net/alang/d/warnings.html

Hello, World

定番。 import std.c.stdio; int main(char[][] arg){ printf("Hello, World.\n"); }コンパイル。 C:\>dmd hello.d C:\dmd\bin\..\..\dm\bin\link.exe hello,,,user32+kernel32/noi; C:\>hello Hello, World. Error: AssertError Failure hello.d(5)エラーだ…

書き忘れ

パスのこと。 多分WindowsXPならシステムのプロパティから詳細設定タブ、環境変数、Pathを適当に弄る。 c:\dmd\bin;c:\dm\bin;多分間違ってない。と思う。

インストール

http://www.kmonos.net/alang/d/dcompiler.html 特に問題なくインストール。嘘。typoはした。 C:\>dmd Digital Mars D Compiler v0.157 Copyright (c) 1999-2006 by Digital Mars written by Walter Bright Documentation: www.digitalmars.com/d/index.html…

ここまでのあらすじ

電車の待ち時間に(田舎だ)本屋で D言語パーフェクトガイド―Windows Linux FreeBSD対応 をうっかり読んでしまったら色々よさげだった。 よしじゃあやろう、何かメモっぽいものもつけよう、そうだはてなのアカウント余ってたな。 ここまで。

心は一つ

00:13 (she) とりあえずphobosはreclsとopenrjがやばい 00:43 (niha) 何であるのかよくわからない 00:44 (she) みんなそう思っている 00:44 (niha) 心は一つ Phobosは不評らしい。Aresが良いらしい。

標準ライブラリ Phobos

火星物語だ!とか思ったら負け。 std.c.stdioのかわりを探してみたけどstd.stdioもstd.streamも何か微妙に見えるなあ… 今日はおしまい。

アクセス保護属性

まずはじめに、5つも必要なんだろうかと思った。うーん。まあいいか。 C++より緩い気がする。Scott Meyerでも降臨してくれればいいんだけれど。 とりあえずここを見ろといわれた → http://www.kmonos.net/wlog/33.php#_2359031128 うん超緩い。そしてclassの…