// * D

#contents

* auto 

- 変数宣言で使うとスコープアウトでデストラクタが呼ばれる
- クラス宣言で使うとautoでしか宣言できなくできる

* Cと文字列

 import std.string;
 
 char[] s;
 std.string.toCharz(s);
 toStringz(s);

 "foo\0"
\0で終わる char *を返す。~
旧 toCharz。

みたいな?
* 配列

* sizeとlength
** .sizeと.length

- .length 配列の長さ
- .size 使用バイト数(よく見たら非推奨だった) .sizeof
- .size 使用バイト数(よく見たら非推奨だった)~
.sizeof~
動的配列だと .sizeof は参照なので固定の値

ハマった・・・

* 配列の初期化子
** 初期化子

staticでないと使えない
staticな変数でないと使えない

** スライス

中の値は元の配列の参照。

* 正規表現

** マッチした位置の取得

	RegExp re = new RegExp(`[0-9]+`,null);
	char src[] = "2005/04/23";
	
	for (bit isFirst=true; ; isFirst=false) {
		int result = isFirst ? re.test(src) : re.test();
		if (!result) break;
	
		int start = re.pmatch[0].rm_so;
		int end = re.pmatch[0].rm_eo;
	
		printf("%s: %d - %d\n", toStringz(src[start..end]), start, end);
	}

publicではないpmatchを使う違法くさいコード。

* 整数除算

負の数を正の数で割ると怪しい。(v0.121)

* yaneSDK4D

- -dをつけないとキャストで怒られる
- floatをintに変換できないといって怒られる
-- y4d_draw/drawcontext.d
-- y4d_draw/fontrepository.d
-- y4d_draw/scenariodraw.d
-- など
- key in aaray を bitに変換できなくなったらしい
-- (key in aaray) != null で
- uintで-1はキャストしないと怒られる
- makefileよりMakefile.yaneSDK4D.linux
-- dmdのところを書き換え
-- lib〜.a を .libに
-- .o は .objに
-- debugをreleaseに
- .size は .sizeofに


トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS