12/04/22 21:40:49.13
列挙型 が値の重複を許すというのがC系言語の伝統であるという
衝撃の事実をもってこの討論の終わりとしたい
な、納得なんかしてないんだからね、誤解しないでよねっ
262:デフォルトの名無しさん
12/04/23 00:40:18.85
enum E { A=1,B=1 }
static assert(E.A != E.B);
これがだめなのが悲しいってことでしょ
263:デフォルトの名無しさん
12/04/23 02:30:05.95
>>259
理由:列挙子の別名を許すため
enum E { A=1, B=A } // E.BはE.Aの別名
final switchはちゃんと別名を判断してくれる
enum E { A=1, B=A }
void main() {
E e = E.A;
final switch (e) {
case E.A: break; //E.AだけでOK
}
final switch (e) {
case E.B: break; //E.BだけでOK
}
}
264:デフォルトの名無しさん
12/04/23 03:06:00.40
E.T == alian
265:デフォルトの名無しさん
12/04/23 15:10:41.07
alias E.T alien;
266:デフォルトの名無しさん
12/04/23 15:24:17.25
alian を align に空目した俺は、
>>234 には協力できそうにないな・・。
267:デフォルトの名無しさん
12/04/23 15:37:02.70
クロージャ周りでGCのバグ無いか
発生条件わからんが
268:デフォルトの名無しさん
12/04/23 15:51:06.89
GCじゃないな
クロージャ使うとローカル変数が逝ってセグフォ
クロージャの引数型ちゃんと書いたら起こらなくなった
似たような症状ない?
269:デフォルトの名無しさん
12/04/23 16:19:56.62
構造体リテラルと見分けづらい書式だったり?
270:デフォルトの名無しさん
12/04/23 18:50:21.09
>>261
歴史的な理由で、同じ値を使うのが適切なこともある。
例えば文字コードのこれとかw
enum CharctorSet
{
Shift_JIS = 932
SJIS = 932
x-sjis = 932
MS_Kanji = 932
}
271:デフォルトの名無しさん
12/04/23 19:24:27.54
あー納得した
納得したのはいいが
いつになったらMS932がちゃんと使えるようになるのだということを思い出して悲しくなった
272:デフォルトの名無しさん
12/04/23 22:44:14.61
え?
D言語を使っている外国人は
UTF-8かUTF-16で我慢しろってお達しだけど
知らなかったの?
273:デフォルトの名無しさん
12/04/23 23:01:33.95
C#のEncodingみたいなのくれよ
274:デフォルトの名無しさん
12/04/23 23:07:06.58
>>273
言いだしっぺ登場!待ってました!
275:デフォルトの名無しさん
12/04/23 23:26:59.10
URLリンク(site.icu-project.org)
興味はある。
やる気が続くかは知らない。
応援されたらやる気出る・・・かも?
276:デフォルトの名無しさん
12/04/23 23:58:33.05
今年も自分の誕生日を知らせるソフトが起動した
もう二度とコンパイルできないけどな
277:デフォルトの名無しさん
12/04/24 00:17:37.84
こんな悲しいレス見たの初めてだ
278:デフォルトの名無しさん
12/04/24 00:18:46.48
ソースをアップデートしてないからコンパイルできないって意味だよなw
279:デフォルトの名無しさん
12/04/24 00:19:11.98
おめでと…ううっ
280:デフォルトの名無しさん
12/04/24 00:20:50.23
他の言語にパッケージマネージャが整備されているように、
Dにはコンパイラマネージャが必要なのだ
281:デフォルトの名無しさん
12/04/24 00:24:34.05
>>278
D2できたばっかりの頃ののコードだからな
>>279
ありがとう
D言語10周年記念にはDちゃんの同人誌を出そう
282:デフォルトの名無しさん
12/04/24 00:34:15.28
これか・・・
URLリンク(www.city.daito.lg.jp)
283:デフォルトの名無しさん
12/04/24 00:38:55.56
>>282
それだけ愛嬌溢れるマスコットならどれだけ普及していたか
284:デフォルトの名無しさん
12/04/24 02:00:42.04
URLリンク(i40.tinypic.com)
285:デフォルトの名無しさん
12/04/24 02:18:50.61
.o o
< /
p ~q
|д >
|,__/
./ >
J L
286:デフォルトの名無しさん
12/04/24 09:14:48.89
Ver指定で自動変換してくれるソフト欲しい。
自動で出来ない所は指摘してくれれば良し。
287:デフォルトの名無しさん
12/04/24 09:52:28.53
var指定で自動変数にしてくれる現状のdmdで我慢汁!
288:デフォルトの名無しさん
12/04/24 10:51:52.93
そういうのを自動でしづらい奴が deprecated されていくのではないか
リリースごとに移行ガイドはあっていいと思うけど
289:デフォルトの名無しさん
12/04/24 11:37:38.87
#! /bin/dmd-manager 2.058
import std.stdio;
void main() { ... }
290:デフォルトの名無しさん
12/04/24 15:42:25.90
このVerのdmdで通ったと指定すると、最新リリースに自動変換かけて、移行ガイド+注意点+対象行を表示する感じ。
標準リリース内容全てをやってくれるとありがたい。Ver履歴を自力でたどるの面倒。
あと公式サイトのコード例が一部動かないけど、サイト全体をautobuild管理しないの?
公式サイトの文書も文書担当コミッタがバグ管理とか。
D言語はじめたばかりなんで、的外れだったらスマン。
291:デフォルトの名無しさん
12/04/24 16:02:47.60
公式はウォルターの趣味サイトだからなあ
292:デフォルトの名無しさん
12/04/24 16:49:23.66
公式サイトもバグレポ対象
293:デフォルトの名無しさん
12/04/24 16:54:43.14
>>290
そういう足枷をなくしてやりたい放題なところが
Dのよいところでもあり、悪いところでもあり、悪いところでもあり、わ(ry
Java+Eclipse みたいに
枠にはめて手取り足取りなのに憧れを感じはするけども
294:デフォルトの名無しさん
12/04/24 17:14:44.26
あるいは開発サイドにそのような概念を持ち合わせていないという可能性も
295:デフォルトの名無しさん
12/04/24 17:58:59.32
>>293
悪いところが(ry
やりたい放題は良いんだけど、VerUP補助ツールくらいは作れるはず。
ツールを通すと自動で出来る所は勝手に変換して、人力部分は行数と変更点を表示。
表示行を手動で直せば最新で通る、みたいな。
296:デフォルトの名無しさん
12/04/24 22:33:02.90
仕様変更についてはChangeLogから作れるかもしれないけど
副作として生じたバグや挙動変化もあるから
簡単じゃないと思う
297:デフォルトの名無しさん
12/04/25 00:21:26.95
Google Code Jam のせいで Dの注目度が少し高まっているらしい
298:デフォルトの名無しさん
12/04/25 00:26:48.83
仕様にない挙動変化やバグは他の言語でもあるから、仕様部分だけでもやってくれると楽。
299:デフォルトの名無しさん
12/04/25 12:30:36.97
dmdさん、ミスタイプ用の識別子予測でdeprecatedの関数薦めないでください
300:デフォルトの名無しさん
12/04/25 19:58:19.18
うぉるたくん「そのくらいのことで いちいちさわぐな」
301:デフォルトの名無しさん
12/04/25 21:22:09.97
うぉるたくん「やっぱり ぼくが かんがえた ぷろぐらむげんごが いちばん つよいんだ」
302:デフォルトの名無しさん
12/04/25 21:30:35.49
けっきょく Dが いちばんつよくて すごいんだよね
303:デフォルトの名無しさん
12/04/25 21:41:56.48
でぃー「わたしを つかいたいのならば ちからをしめせ」
304:デフォルトの名無しさん
12/04/25 22:33:09.90
D.NET欲しいわ……
305:デフォルトの名無しさん
12/04/26 22:24:23.40
自作の試作コンパイラを試しにpragmaでバージョン指定できるようにしてみたんだけど
ver.毎のphobosのライブラリとソース、レキシカルアナライザを載まなきゃいけないから
コンパイラがアホみたいにでかくなる
ちょっと実用的じゃないね。。。
306:デフォルトの名無しさん
12/04/26 22:32:24.22
>>304
ネイティブ動作という一番のD言語の使用動機を全否定かッ
307:デフォルトの名無しさん
12/04/26 22:42:12.91
そこはnewest version に対するdiff添付で
LTPT (linktime patch technology)だろ!
308:デフォルトの名無しさん
12/04/26 23:04:49.83
>>307
似たような考えでコンパイル時コンパイラ自動生成も今書いてる
鈍足のC++じゃ絶対できないな
309:デフォルトの名無しさん
12/04/26 23:08:14.61
まさかのこのD言語はD言語で書かれています?
310:デフォルトの名無しさん
12/04/26 23:09:12.14
無論 D by D ですよ
311:デフォルトの名無しさん
12/04/26 23:19:05.15
バージョンアップが辛いと思う人はD使わない方が幸せになれると思う
312:デフォルトの名無しさん
12/04/26 23:54:18.92
CだかC++じゃなかった?
313:デフォルトの名無しさん
12/04/27 00:04:30.51
これってウインドウズのGUIのソフトとか作れんの?
314:デフォルトの名無しさん
12/04/27 00:09:13.91
32bit版限定ならそれなりに。
APIを使いこなせる人じゃないと厳しいだろうけど
315:デフォルトの名無しさん
12/04/27 00:19:18.35
理論上はなんでも作れるけど・・・
ライブラリが整備されてない所はすんごく大変w
316:デフォルトの名無しさん
12/04/27 00:24:28.61
今時のを作りたいなら.NET+WPFだろうね
317:デフォルトの名無しさん
12/04/27 00:32:02.64
なるほどありがとうエロい人たち
ローレベルから掘ってく感じなのね
318:デフォルトの名無しさん
12/04/27 00:48:46.30
高レベルなライブラリが出来にくいのは
言語~ライブラリレベルで破壊的な仕様変更が頻繁に行われているからだよ
そういうのが嫌ならうぉるたくんをひっぱたいて反省させてあげてね
319:デフォルトの名無しさん
12/04/27 01:26:20.20
あ、対話環境欲しいです。
320:デフォルトの名無しさん
12/04/27 01:42:29.62
あたいも環境ほしいです。
321:デフォルトの名無しさん
12/04/27 08:52:23.48
>>313
手っ取り早くWin32のAPI使いたい場合、今もメンテされてるのは
URLリンク(www.ku6.jp)
と
URLリンク(pen-jr.org)
>>30の人がDWMAPIとか使ってる。
322:デフォルトの名無しさん
12/04/27 11:42:56.02
>>321
あれ、dsource.orgのやつはもはや古いのか……?
323:デフォルトの名無しさん
12/04/27 18:43:23.22
ライブラリの情報ってどこで取れば良いの?
324:デフォルトの名無しさん
12/04/27 20:59:24.44
ついったで呟く
325:デフォルトの名無しさん
12/04/27 21:28:10.91
ついったはまず名無しにしてくれ
変化が大き過ぎるから都度聞くしかないか
326:デフォルトの名無しさん
12/04/27 21:30:40.92
実はD言語って今でも普通に使ってたり使えてたりする人多いんかな
327:デフォルトの名無しさん
12/04/27 21:32:29.72
一年前と比べるとかなり実用レベル
328:デフォルトの名無しさん
12/04/27 21:49:43.72
なんかの大会だかコンテストで参加者のコードが見れるんだけど1位の人がD言語使ってたってちょっと話題になったよね。
329:デフォルトの名無しさん
12/04/27 22:19:40.07
今だからこそ前より使える
330:デフォルトの名無しさん
12/04/27 22:51:58.18
これだな 今から参加できるのかな?
URLリンク(code.google.com)
331:デフォルトの名無しさん
12/04/28 03:56:40.05
cast(auto)とか出来るようにならないかなあ
332:デフォルトの名無しさん
12/04/28 06:03:59.12
何その暗黙的明示キャスト
333:デフォルトの名無しさん
12/04/28 07:36:03.54
= の右側に単独にある場合や
関数の引数に単独にある場合に使うのか
334:デフォルトの名無しさん
12/04/28 10:05:52.19
そりゃ言語じゃなくてIDEの機能だべ
335:デフォルトの名無しさん
12/04/28 13:05:32.23
それいったらauto自体がIDEの機能だし
テキストエディタで書きやすいって特徴を伸ばすのはありだと思う
336:デフォルトの名無しさん
12/04/28 13:09:12.51
支援機能無しじゃとても書いてらんねえマークアップ言語とか
わざとやってんじゃねーかと思えるテキストデータ形式が増えたよね
337:デフォルトの名無しさん
12/04/28 13:13:41.29
Javaとかエディタで書くと苦痛そのものだがDではその苦痛がほとんど無い
templateのカッコ省略とかも何気にステキ機能
338:デフォルトの名無しさん
12/04/28 13:19:18.37
IDEが必要なのは抽象化機能の不足
339:デフォルトの名無しさん
12/04/28 13:42:34.66
auto はテンプレートとかクロージャのために必要と思ってる
>>331 は 中身わからないけど alias とか使うと幸せかも知れない
340:デフォルトの名無しさん
12/04/29 00:57:23.74
pure nothrow @safe const とか長い修飾子ちゃんと付けてるひといるのか
341:デフォルトの名無しさん
12/04/29 01:16:59.61
その前に、Dのcastって、相当低レベルな処理だぞ。
簡単にautoとか出来るような処理してないぞ。
342:デフォルトの名無しさん
12/04/29 02:24:19.29
constとinとimmutableはつける
後は……
343:デフォルトの名無しさん
12/04/29 10:27:03.09
autoがvarに変更にならないかな
Cのauto変数と意味が違うからどうも
344:デフォルトの名無しさん
12/04/29 11:41:02.15
c++11と同じだから問題ない
345:デフォルトの名無しさん
12/04/29 12:11:06.92
@safeとかnothrowとか微妙に推論してくれるようになった気がしたけどそんなことはなかったぜ
346:デフォルトの名無しさん
12/04/30 07:00:25.31
poseidonって完全更新とまってる?
() => (...) があるとparserが失敗する・・・
347:デフォルトの名無しさん
12/04/30 13:07:09.03
なんか前はinPatternでa-z指定してもA-Zにマッチしてたような気がしたけど
いましないねいつ変わったんだろう それとも気のせいかな・・
348:デフォルトの名無しさん
12/04/30 13:34:36.07
>>346
死んでるなぁ→どっこい生きてた→死んでるなぁ→どっこい生きてた→死んでる ←いまここ
349:デフォルトの名無しさん
12/04/30 13:49:30.91
>>346
ソースのライセンスも明記されてないような・・・
350:デフォルトの名無しさん
12/04/30 15:46:17.03
VisualD使え捗るぞ
351:デフォルトの名無しさん
12/04/30 18:12:02.99
VS2008だとShell入れないといけないし、VS2010は登録しないと使えないし・・
352:デフォルトの名無しさん
12/04/30 21:41:31.93
visualDってプロジェクトごとにライブラリやインクルードするフォルダの設定とかできる?
353:デフォルトの名無しさん
12/04/30 22:14:57.47
だれかblazeって使ってる人いる? box2dをD言語に移植したやつらしい.
これやるのとbox2dをC経由で使うのとどっちのがいいのかなぁ
354:デフォルトの名無しさん
12/05/01 01:07:30.21
18スレ目見る限り(Demoを)動かした人は多数いる模様
355:デフォルトの名無しさん
12/05/01 01:18:27.48
これのライセンスって商用利用時にも使いましたと明記する必要なしって読めたけどあってる?
でも2009以降の更新がないということは・・・・
356:デフォルトの名無しさん
12/05/01 02:42:29.15
blazeコンパイルしてみたけど挙動がおかしい\(^o^)/
357:デフォルトの名無しさん
12/05/01 13:32:47.13
>>356
2.059でmakeかけたらコンパイラに怒られまくったorz
358:デフォルトの名無しさん
12/05/01 15:03:26.23
自分で機能追加とかする気がなければラッパーで・・・って
C++じゃそうもいかんべ
359:デフォルトの名無しさん
12/05/01 16:27:47.44
>>357 2.059でもinoutとビット演算の部分なおしただけでコンパイルは通ったけど・・・
360:デフォルトの名無しさん
12/05/01 17:12:51.04
LF改行の中に CRLF が混じってて行番号ずれに悩んだ・・・ぐぬぬ
361:デフォルトの名無しさん
12/05/01 17:15:50.71
>>359
他にも↓とか直したんだけど
・final→immutable
・変数名lambda→別名
・no reachなんたら
・final switch
・@property
↓なんぞ・・・・
bzNullContactに2引数のコンストラクタ持たせても消えない・・・
.\dynamics\contact\bzContact.d(120): Error: null dereference in function _D5blaze8dynamics7contact9generator13bzNullContact13bzNullContact6__ctorMFZC5blaze8dynamics7contact9generator13bzNullContact13bzNullContact
362:デフォルトの名無しさん
12/05/01 17:35:13.99
>>361
class bzNullContact : bzContact
{
this() {
super(null, null); // 実行時にぬるぽ
}
}
いや、コンパイラがそんなとこまで頑張らなくていいから・・・w
363:デフォルトの名無しさん
12/05/01 17:36:40.42
コンパイラじゃなくてオプティマイザの仕業だったかも
364:デフォルトの名無しさん
12/05/02 00:29:24.64
とりあえずこれでdmdは大人しくなってlib作れたけど
そもそも元のソースで構造体変数にnullをセットするようになってたのはOKなのか・・・
class bzNullContact : bzContact
{
private bzShape s1_;
private bzShape s2_;
this()
{
super(s1_, s2_);
}
override void evaluate(bzContactListener listener) {}
}
365:デフォルトの名無しさん
12/05/02 01:07:28.28
helloWorld.dを実行すると
一辺1.0のBoxが y=4.0 から自由落下した結果
y座標が3.9972~0.9972まで変化して表示されるんだけどこれって正しい動作?
0.0028ずれてない・・・?
366:デフォルトの名無しさん
12/05/02 08:29:26.71
>>364
新しいdmdは賢いからそういうおかしなコードは通らない。元々許してたのがおかしいんだけど。
367:デフォルトの名無しさん
12/05/02 11:37:01.30
VisualD 0.3.32
368:デフォルトの名無しさん
12/05/02 19:14:41.32
>>365
それもおかしいし,落とす物体の初期x座標を0.01ほどずらすともはやカオス
369:デフォルトの名無しさん
12/05/03 23:34:36.20
ふとしたことからiniファイル読むプログラム作るはめになりそうなんだけど
std.iniって結局phobosに入るの?
370:デフォルトの名無しさん
12/05/04 00:08:48.17
わざわざ入れるほどのものでもない
ほしければ自分で取り込めばイイ
機能追加とかも考えにくいし
371:デフォルトの名無しさん
12/05/04 01:31:33.64
入らないっぽいのか
じゃあ自作するかー。Dなら5秒で書けるだろ
372:デフォルトの名無しさん
12/05/04 02:56:38.92
なんかblazeメンテされてないから最新のBox2DをBox2D4Dとかの名前で移植しようかと思ったけど
全部だとめんどいですね。ポーティングの方がいいのかな。でも元ソースがC++という・・・
373:デフォルトの名無しさん
12/05/04 21:55:08.86
D言語で構造体変数の参照(非ポインタ)をreturnする場合って↓みたいにすればコピーコンストラクタ走らないですか?
ref const(S) f(){return m_s;}
C言語で言うと↓見たいのがやりたいです
const S& f(){return m_s;}
374:デフォルトの名無しさん
12/05/04 22:29:45.50
>>373
戻り値のref は左辺値として使う時専用みたい。
構造体Sにint x; というメンバがあるとして、
f().x = 10; // コピーコンストラクタは走ってない。
戻り値を代入すると、
auto s = f(); // コピーコンストラクタが走る。
みたいな感じ。
375:デフォルトの名無しさん
12/05/05 02:05:15.04
あれ・・D言語のstructがわけわからない・・・2が表示される
sの参照がssにセットされるからss.aに値を代入すればs.aも連動するはずじゃないのかな
コピーコンストラクタも動いてないし何が起きてるのかさっぱり
import std.stdio;
struct S
{
int a;
this(int a){this.a = a;}
this(this){
writeln("copy ctor!");
}
}
ref S f(ref S s)
{
return s;
}
void main()
{
S s = S(2);
S ss = f(s);
ss.a = 101;
writeln(s.a);
}
376:デフォルトの名無しさん
12/05/05 02:07:40.10
ss を初期化する時点でコピーされる
C++ の参照でも同じじゃん
377:デフォルトの名無しさん
12/05/05 02:22:08.78
コピーされたなら コピーコンストラクタのthis(this);が呼ばれない?
"copy ctor!"が出力されてないからthis(this);が呼ばれていない⇒コピーされていないって思ってるのだけど
378:デフォルトの名無しさん
12/05/05 02:46:11.89
this(this) はビットコピーが完了した後呼ばれる・・・呼ばれてないな
379:デフォルトの名無しさん
12/05/05 02:50:30.52
D2の構造体は複雑だなあ・・・
URLリンク(ideone.com)
バージョンが古いので、最新版でどうなってるかは分からん。
380:デフォルトの名無しさん
12/05/05 02:56:24.92
もう少し詳しく。
URLリンク(ideone.com)
381:デフォルトの名無しさん
12/05/05 16:39:51.62
>>372
フォーラム見てるとBox2D4Dってプロジェクトはアルっぽいけど動いてなさげ
box2dをDに移植するのと,blazeをD2に移植するのどっちが楽なんだろ.blazeはどの程度使いまわし出来るんだろ
382:デフォルトの名無しさん
12/05/05 18:38:09.08
>>381
・blaze⇒D2
ほぼsed等の置換でD2に対応出来た
元のソースのバージョンが古いためスプライト描画等の機能が少ないと思われる。
挙動がおかしい?
最新版のbox2dとはファイル構成をはじめ結構違う
・最新のbox2d⇒D2
移植めんどい
C++等でbox2Dを使用したソースを流用しやすい(古い版を使用したソースはその辺に転がってない・・)
blazeのベースとなった当時よりbug fixされていて安定していると思われる
383:デフォルトの名無しさん
12/05/05 23:03:01.91
>>380
なんか"this"の出力多いな、と思ったんだが、opAssign の副作用で呼ばれてるのか
URLリンク(ideone.com)
これ見る限りでは >>375-378 にあたる"-3-"で"this"が出力されないところだけおかしいってとこかな。
384:デフォルトの名無しさん
12/05/05 23:22:34.43
copy on writeとかの処理ミスってるぽい動きだなあ
385:デフォルトの名無しさん
12/05/06 16:40:05.29
ビットコピーだけして終了してる感じなのだろうか
386:デフォルトの名無しさん
12/05/06 21:38:32.29
SQLiteって今のDでだれか使ってる?
すぐに使えるのなら使ってみたいんだけど。
387:デフォルトの名無しさん
12/05/06 21:45:12.81
検索したら出てきた
URLリンク(d.hatena.ne.jp)
388:デフォルトの名無しさん
12/05/06 21:52:33.17
生のC用APIそのままでいいなら普通に使ってるよ
389:デフォルトの名無しさん
12/05/06 22:58:43.31
Dを普通に使ってるのもすごいな・・・
390:デフォルトの名無しさん
12/05/06 23:01:06.57
ウィジェット・ツールキット以外は使えるんだよ、それ以外は。
391:デフォルトの名無しさん
12/05/07 23:17:28.41
shiftjisのファイル読みたいんだけど、Dで手っ取り早い方法ある?
392:デフォルトの名無しさん
12/05/08 01:47:58.64
>>391
WindowsでUTFを使う
今も使えるかは知らない
393:デフォルトの名無しさん
12/05/08 02:30:24.25
>>391
std.windows.charset.fromMBSz があるじゃなーぃ
URLリンク(dlang.org)
394:デフォルトの名無しさん
12/05/08 12:29:56.48
char*に突っ込む
395:デフォルトの名無しさん
12/05/08 19:42:46.79
jcode.d
396:デフォルトの名無しさん
12/05/08 23:02:25.71
Dを何気ないツール書くのに使うときってtemplateとか素敵機能使う?
俺ベターC++的な使い方以上なかなかできない
397:デフォルトの名無しさん
12/05/08 23:23:02.36
むしろテンプレートだと意識してないかもしれない
to!int(n) とか頻繁に出てくるし、
void foo(T)(T n) {} とか普通に書くよ
398:デフォルトの名無しさん
12/05/08 23:34:39.88
逆にテンプレートがないと書けない。
C++もboostがないと書けない。
399:デフォルトの名無しさん
12/05/08 23:59:58.61
(T)(in T[] list, ..){ ...
みたいのはよく使う
400:デフォルトの名無しさん
12/05/09 08:00:22.38
C++にない機能はあんまり使わないかも。
2進数リテラルとforeach、レンジ、スコープガードを使うくらいかな?
401:デフォルトの名無しさん
12/05/09 19:50:19.92
組み込みの連想配列とか配列スライシングは頻繁に使う
C++でもできるけど文法面がけったるいというか
あと型推論
文字列もimmutableになってるのは結構便利だったりするし
402:デフォルトの名無しさん
12/05/09 20:36:49.01
std.xmlめ、行内にascii以外の文字があるとインデントがでたらめになりやがる
どうせ直さないのはわかってるけど結局今phobosのXMLはどうなってるの?
403:デフォルトの名無しさん
12/05/10 01:25:04.60
C++のfriendとかどうやって移植すればいいんだ・・・
404:デフォルトの名無しさん
12/05/10 01:55:03.66
普通に同じモジュールで
405:デフォルトの名無しさん
12/05/10 03:14:18.14
private は、同じクラスのメンバのみが参照できる、 あるいは同じモジュールのクラス/関数のみが参照できることを示します。 private メンバをオーバーライドすることはできません。 モジュールのメンバを private と宣言するのは、 C での static宣言と同等です。
406:片山博文MZボット ◆0lBZNi.Q7evd
12/05/10 18:16:16.58
D言語のWin32 APIサポートは貧弱みたいだね。何かいいのある?
407:デフォルトの名無しさん
12/05/10 18:26:13.26
最近あんまり触れてなかったからよくは知らないけど
BindingsプロジェクトのWindowsAPIとか使えるんじゃね?
408:片山博文MZボット ◆0lBZNi.Q7evd
12/05/10 18:30:45.82
>>407 サンクスヴェリーマッチョ
409:デフォルトの名無しさん
12/05/10 20:14:30.52
>>404
C++の元のソースがあんまり関係ないクラスのprivateメンバをチラ見したいがためにfriend指定してるっていうひどい作りなので
そういうクラスたちを一緒のファイルに入れるのがすごく抵抗あるんだ
しかもそんな利用法のfriendが大量に並んでるからものすごいカオス
真っ当じゃない使い方のfriendに相当する機能がないってことは設計から見直すしかないのか・・・・・
410:デフォルトの名無しさん
12/05/10 20:26:14.75
>>409
1モジュールに全部詰め込んでしまえばいい。
411:デフォルトの名無しさん
12/05/10 20:33:34.07
>>409
なんだそのカプセル化の基本を無視したコーティングはwwww
逆に興味ある。
412:デフォルトの名無しさん
12/05/10 20:34:58.13
>>410
頭いいな!そうする
413:デフォルトの名無しさん
12/05/10 20:36:00.10
publicでいいんじゃね?w
414:デフォルトの名無しさん
12/05/10 21:05:36.02
ここまで作った。(なげやり)
URLリンク(ideone.com)
415:デフォルトの名無しさん
12/05/10 21:44:12.04
character
416:デフォルトの名無しさん
12/05/10 23:39:20.62
>>414
cast(immutable)なこと出来たのかー
417:デフォルトの名無しさん
12/05/11 00:05:18.70
実態は大差ないけどassumeUniqueの方がいいかもね
418:デフォルトの名無しさん
12/05/11 00:09:30.34
assumeUnique()の「決意表明である!」みたいな説明を見て
なんとなく不安になるのは俺だけじゃないはず
419:デフォルトの名無しさん
12/05/11 00:20:53.74
「コードを書く側がimmutable性を保証する」って意味だからそんなに怖がらなくても
420:デフォルトの名無しさん
12/05/11 00:22:36.71
心折れそう。(まだ途中)
URLリンク(ideone.com)
421:386
12/05/11 00:46:05.19
>>387,388
遅くなったけどありがとう
程々にがんばってみるよ
422:デフォルトの名無しさん
12/05/11 01:32:04.42
Linuxはiconv使えばいいかな
423:デフォルトの名無しさん
12/05/11 18:49:32.68
box2d4dのコードをD2用になおして動かしてみたんだ.
バウンドすらしねえ
424:デフォルトの名無しさん
12/05/11 20:33:47.56
SWIG でなんとかならんかな~と思ったけど
情報が少なすぎて手も足も出ない
425:デフォルトの名無しさん
12/05/12 09:27:59.41
これってどっちもOKじゃなかったっけ?1の方がエラーになる
1:
std.stdio.writeln("xxx");
2:
import std.stdio;
writeln("xxx");
-----------------------------------------------------------
Error: undefined identifier std
426:デフォルトの名無しさん
12/05/12 09:38:23.12
std.stdio.って付けてもimportの省略とかはできませんよ
同じ名前の関数が別モジュールで複数ある場合に「どこの」関数であるかを明確にするために使います
427:デフォルトの名無しさん
12/05/12 10:01:03.44
あれ?おっかしいなぁstd.conv.toはできるんだけど
↓とかv2.059でも行けた。でもwritelnの方にはつけるだけじゃだめぽい
import std.stdio;
void main()
{
writeln(std.conv.to!int("123"));
}
428:デフォルトの名無しさん
12/05/12 12:19:28.09
>>427
ただのバグです。static importが無視されるってのは大昔からある伝統的なバグ。
最近若干改善されたから >>425 が正しくエラーになるようになった。
URLリンク(d.puremagic.com)
429:デフォルトの名無しさん
12/05/12 12:22:26.74
ばぐっすかーなるほど
430:デフォルトの名無しさん
12/05/13 11:37:20.50
>>27-29
en.wikipedia の TLS には書いてあるのを見つけた
431:デフォルトの名無しさん
12/05/13 11:48:07.43
公式の Glossary に UFCS の項目がないのは重大な手落ちだと思うんだ
誰か(ry
432:デフォルトの名無しさん
12/05/13 23:11:49.02
いつからだ・・・・いつから
「new 構造体()」が実体じゃなくポインタを返すようになったんだ・・・・
433:デフォルトの名無しさん
12/05/13 23:17:16.99
構造体newの犠牲者がまた一人
434:デフォルトの名無しさん
12/05/14 00:01:48.44
実体を返してた時代があったのか・・・
Phobosがstruct使いまくりだした時代にはもうそれがなくなってたのかな?
435:片山博文MZボット ◆0lBZNi.Q7evd
12/05/14 11:10:32.63
誰かD言語用の入力補完システムを作ってくれませんか?
436:デフォルトの名無しさん
12/05/15 12:56:13.75
iconvの使い方って、本当にこれでいいのだろうか・・・
URLリンク(ideone.com)
437:デフォルトの名無しさん
12/05/15 16:09:06.52
WideCharToMultiByteは置き換えられない文字は?になるけどiconvは途中までの結果でエラーリターンしてくるぜ。
438:デフォルトの名無しさん
12/05/16 08:14:42.31
構造体をnewしたことないわw
439:デフォルトの名無しさん
12/05/17 09:12:29.92
D言語で書かれた国産ソフトってある?
ゲーム以外で。
440:デフォルトの名無しさん
12/05/17 10:07:56.85
うちの会社のデータ処理アプリ
分析やら整形やら
441:デフォルトの名無しさん
12/05/17 16:32:02.35
使えるようで使えないのがD言語
大した使用の差なんてないくせにいつまでもベータ版気取りやがって!!
442:デフォルトの名無しさん
12/05/17 16:40:32.33
別に値打ちこいてる訳じゃなくて
あまりに魅力無いからレイプしたいと誰も思わないだけ
443:デフォルトの名無しさん
12/05/17 19:10:50.98
GUIがろくに書けない時点で作れるソフトの選択肢が大幅に
444:デフォルトの名無しさん
12/05/17 19:14:20.52
標準入出力のパイプで通信してGUIの構築とか入力の受け取りとかやってくれるソフトないの?
445:デフォルトの名無しさん
12/05/17 19:48:02.92
gtk-serverとか?
破壊的変更毎に修正する手間はかけられない。
つまり普及の最大の障害人物は(ry
446:デフォルトの名無しさん
12/05/17 19:55:37.23
とりあえずstd.datetimeを捨ててくれたら使ってやる。
あれが必須レベルでリンクされるとか実用の妨げにしかなってない。
447:デフォルトの名無しさん
12/05/17 20:15:06.31
rdmdって単一ファイルにしか使えないの?
importで別の.dソースファイル参照するとか出来れば幸せなんだけども
448:デフォルトの名無しさん
12/05/17 20:44:38.62
>>439
URLリンク(www.vector.co.jp)
449:デフォルトの名無しさん
12/05/17 21:24:35.80
私に良い考えがある。
破壊的変更をしないベターC++としての、D--を作って普及させるんだ。
450:デフォルトの名無しさん
12/05/17 21:51:23.73
>>446
何があかんの?
451:デフォルトの名無しさん
12/05/18 07:44:25.00
でかいんでしょう
452:デフォルトの名無しさん
12/05/18 07:59:19.46
std.regexって今後小さくなるかな
GCとかも
453:デフォルトの名無しさん
12/05/18 19:58:34.30
間違いなく大きくなりますね
454:デフォルトの名無しさん
12/05/18 21:36:55.12
なんで?
今はまだ最低限の実装ってこと?
455:デフォルトの名無しさん
12/05/18 22:11:58.74
世代型のコピーGCェ・・・
456:デフォルトの名無しさん
12/05/18 22:52:06.53
こないだうぉるたんがGCまわりいじってたけど
世代型はまだまだ手付かずと思っていいのかな
457:デフォルトの名無しさん
12/05/19 01:41:44.18
GCなしオプションこい
GC使う機能は全て無効で
458:デフォルトの名無しさん
12/05/19 01:50:51.50
@nogc属性が追加されます
459:デフォルトの名無しさん
12/05/19 02:10:27.71
GC無しはD言語使う意味半減な気がするから、
もっと賢く軽くなって
460:デフォルトの名無しさん
12/05/19 03:17:55.19
組み込み用のクロスコンパイルくらいでしか使わない機能だな
461:デフォルトの名無しさん
12/05/19 03:40:57.58
関数のbodyのとこにelseって書けない?
こういうのしたい
void func(T)(T t)
if(is(T : xxx)){
}else if(is(T : yyy)){
}else{
}
462:デフォルトの名無しさん
12/05/19 03:52:35.59
static ifでどう?
463:デフォルトの名無しさん
12/05/19 08:39:24.59
とりあえず中身は遅くてもバグだらけでもいいから
インターフェイスを完璧に固めてくれ
464:デフォルトの名無しさん
12/05/19 12:42:00.76
>>462
そう思ってやってたんだけどなんかコンパイルエラーになるんだよなあ
URLリンク(ideone.com)
465:デフォルトの名無しさん
12/05/19 12:54:12.32
>>464
staticの付け忘れのようだ。
URLリンク(ideone.com)
466:デフォルトの名無しさん
12/05/19 12:58:13.43
うわああああああああああああああああああああ
そんなとこにもstatic・・・・orz
else ifってelseifじゃなくてelse{if}だったね、そうだね・・・勉強になった
467:デフォルトの名無しさん
12/05/19 17:24:04.84
Phobosに内部表現そのままでキャストする関数ってないのか?
*cast(type*)&varって書かないとだめ?
468:デフォルトの名無しさん
12/05/19 17:29:23.43
>>467
そんなことしてもメモリ配置は変わらないぞ。
型の変換をしたい →std.conv
同一の型か調べたい →is()式
469:デフォルトの名無しさん
12/05/19 18:04:09.56
>>467
もしかして、型情報だけ変えたい?
cast()でおk。
470:467
12/05/19 18:12:57.52
例えばuintの0x7fc00000をfloat.nanにしたいってこと
cast()だとnanにはならない
phobosに用意されてるのがあれば使いたいだけでポインタ通すままでもいいんだけど
471:デフォルトの名無しさん
12/05/19 18:59:27.07
>>470
ああ、これは確かに気持ち悪い。
URLリンク(ideone.com)
もしかして、これが必要だったりする?
std.math
pure nothrow @trusted real NaN(ulong payload);
payload の情報を埋め込んだ Quiet NAN を作ります
float に対しては、埋め込み可能な最大の payload は 0x3F_FFFF です。 doubles では 0x3_FFFF_FFFF_FFFF、 80-bit や 128-bit の real では、0x3FFF_FFFF_FFFF_FFFF が最大です。
pure nothrow @trusted ulong getNaNPayload(real x);
NAN から整数値のエラー情報を取り出します。
Returns:
ulong で payload を返す
float に対しては、埋め込み可能な最大の payload は 0x3F_FFFF です。 doubles では 0x3_FFFF_FFFF_FFFF、 80-bit や 128-bit の real では、0x3FFF_FFFF_FFFF_FFFF が最大です。
472:デフォルトの名無しさん
12/05/19 19:29:53.82
俺は*cast(T*)cast(void*)pとかやってるなあ
おまじない的にvoid*挟んでる
473:デフォルトの名無しさん
12/05/20 11:49:59.59
そろそろideoneもDのバージョン上げて欲しいなう
474:デフォルトの名無しさん
12/05/20 19:56:00.02
こういうのできないかな
a[0..10].func();→foreach(ref x; a[0..10])x.func();
475:デフォルトの名無しさん
12/05/20 21:15:25.28
UFCS的に不可
476:デフォルトの名無しさん
12/05/20 21:41:26.66
import std.algorithm;
a[0..10].map!(x=>x.func)();
これじゃダメなん?
477:デフォルトの名無しさん
12/05/20 21:49:13.62
>>475 やっぱり?
>>476 よいね
478:デフォルトの名無しさん
12/05/20 21:51:52.68
素直に書けばいいだけなのでは・・・
URLリンク(ideone.com)
479:デフォルトの名無しさん
12/05/20 23:25:37.69
ごめんね素直じゃなくって 夢の中なら言える
480:デフォルトの名無しさん
12/05/20 23:44:42.54
思考回路は ショート寸前
今すぐ 書きたいよ
481:デフォルトの名無しさん
12/05/20 23:47:08.69
ラムダ式って複文書けないのか・・・
実行されないと思ったら関数が返されてたっていうね
結果()=>{}()とか何の暗号だよ
482:デフォルトの名無しさん
12/05/20 23:49:44.66
それがλ式
483:デフォルトの名無しさん
12/05/21 00:20:37.03
(args){}のargsが空の時省略できる代償
Scalaに慣れてる人は戸惑いそう
それでなくとも文としての{}は単なるスコープになるし関数リテラルは=>デフォでいいんじゃ…と思ったけどコンパイル処理が
484:デフォルトの名無しさん
12/05/21 05:56:35.57
結論:
関数リテラルでよかった。
485:デフォルトの名無しさん
12/05/21 08:10:16.83
λ式って単に記述がシンプルに書けるってだけの存在なのかな。
486:デフォルトの名無しさん
12/05/21 08:23:06.75
","演算子多用してこうぜ
487:デフォルトの名無しさん
12/05/21 11:04:29.70
カンマ演算子は滅びるべき
()なし関数リテラルも滅びるべき
ラムダは言語の機能・特徴を一言で表せる点で有意義
488:デフォルトの名無しさん
12/05/21 22:13:00.95
プールしたメモリを使用するnewを提供するテンプレートクラスください
489:デフォルトの名無しさん
12/05/22 07:19:51.11
再利用の基準とかあるんだし
自分で作れよ
490:デフォルトの名無しさん
12/05/22 16:19:22.94
条件コンパイルの version識別子を複数一括で変えたくなったとき
もうちっと気の利いた手段がほしいな
version -> ファイルをまたぐ -> static if + enum
-> 共通ヘッダにまとめて public import -> カコワルイ
491:デフォルトの名無しさん
12/05/23 15:05:06.10
int型数個のみ入ったshared構造体から値コピーしてsharedを外すにはどうすればいいんですかね
492:デフォルトの名無しさん
12/05/23 15:23:30.65
>>491
URLリンク(ideone.com)
493:デフォルトの名無しさん
12/05/23 15:27:01.76
S d = cast()s;
ideoneは古過ぎて検証目的には使えない
494:デフォルトの名無しさん
12/05/23 15:46:14.06
公式サイトの和訳も、すっかり古くなってきてるなぁ・・・
495:片山博文MZボット ◆0lBZNi.Q7evd
12/05/24 11:59:45.98
D言語をインストールする
URLリンク(katahiromz.web.fc2.com)
D言語ソースにShift_JISを埋め込む
URLリンク(katahiromz.web.fc2.com)
496:デフォルトの名無しさん
12/05/24 12:10:12.52
まさか今になってD1の新規記事を書かれるとは
497:片山博文MZボット ◆0lBZNi.Q7evd
12/05/24 13:50:22.41
DのWin32 APIのフルサポートをやっちゃうぞぉ! 乞うご期待。
498:デフォルトの名無しさん
12/05/24 20:04:21.59
>>497
public domainで既にあるしなんで今更
しかもAPI直叩きなんてポインタの嵐でDの良さ半減しちゃう
どうせならDのサポートするOS全部サポートするGUIライブラリにしてよ
499:デフォルトの名無しさん
12/05/24 20:42:58.04
まじでなんでD1
500:デフォルトの名無しさん
12/05/24 21:08:57.23
我々の界隈ではD1を選択することを逃げと呼ぶ
501:デフォルトの名無しさん
12/05/24 21:10:49.58
新しいGUIライブラリなんてもういらない
どうせやるなら既存のものを他のOSに対応させたり機能を洗練させたりすることに力を注いで
502:デフォルトの名無しさん
12/05/24 22:04:26.39
DWTはいいぞぉ、元がSWTで使い倒されてるだけあって機能不足だけはありえない
503:デフォルトの名無しさん
12/05/25 12:38:59.63
DWT をWindows で使う時ってどうなの?
ユーザー側でのランタイムのインストールとか
DLLやバイナリが水ぶくれになるとかがなければ使ってみてもいいけど
よくわからんw
気にしなくていいのかな
504:デフォルトの名無しさん
12/05/25 12:54:36.64
Q. The executable are big
A. Yes, this is still a problem. A DWT application with debug info can easily grow bigger than 10 MB.
The UPX tool can often compress the executable significant.
So it probably a good advice to use UPX for the programs release version.
URLリンク(www.dsource.org)
URLリンク(www.dsource.org)
URLリンク(www.dsource.org)
505:デフォルトの名無しさん
12/05/25 12:56:56.36
wxD のがいいんじゃない?
506:デフォルトの名無しさん
12/05/25 13:23:15.20
UPX使えとか投げやりな
507:デフォルトの名無しさん
12/05/25 13:43:58.15
>>504
ありがと
サイズの小さいやつを見かけて もしやと思ったけど残念
>>505
更新されてるのん?
508:デフォルトの名無しさん
12/05/25 15:13:04.57
immutable(byte)[] bytestring = ['a','b','c'];
string text = bytestring.to!string;
writeln(text);
writeln(text.length);
509:デフォルトの名無しさん
12/05/25 15:23:01.43
DWTはD2へのインストール法がわからん。
510:デフォルトの名無しさん
12/05/25 20:14:28.73
>>509
D1と同じやり方で使える
んだけど、実はsubmoduleが最新になってないことがあるので
最新のD2で使うにはpullかけて更新しなきゃいけなかったりする
git clone URLリンク(github.com)
cd dwt
git submodule init
git submodule update
git submodule foreach git pull origin master <- 全submoduleのpull
rake base swt
wxDはTreeCtrlがまともに動かなかったのは直ってるのかなぁ
511:デフォルトの名無しさん
12/05/25 21:55:26.78
>>510
サイトに書いてあるインストール法とチガ(ry
冗談はさておき、pullを含めてもエラーはstd.loader。
dwt/base/src/java/nonstandard/SharedLib.d(8):
Error: module loader is in file 'std/loader.d' which cannot be read
環境はarchのdmd2-git最新だけど、Linuxの開発者いないのかな。
512:デフォルトの名無しさん
12/05/25 22:13:25.07
2.059タグからstd.loaderを持って来たけど、
core.thread.Thread.sleepのdepricatedで止まった。
やはり向いてないのであきらめる。
513:デフォルトの名無しさん
12/05/25 22:34:50.53
>>511
linuxは手出してないわ…すまぬ
たぶん2.059の崩壊的変更で死んでると思う
514:デフォルトの名無しさん
12/05/25 22:54:10.77
>>510
お礼忘れてた。とんくす。
>>513
DはWin率が高い気がするな。
515:デフォルトの名無しさん
12/05/25 23:25:45.42
メリットないからな
516:デフォルトの名無しさん
12/05/25 23:56:30.22
linuxの場合はそれこそGtkDとかが相性良さそうな気がするな
Windowsで使うとDLLだらけになって死ぬ
517:デフォルトの名無しさん
12/05/26 00:36:50.00
GtkDはtypedefをaliasに直す作業がいる
518:デフォルトの名無しさん
12/05/26 01:01:10.42
class A{}
class B : A{}
A b = new B();
typeof(b) ←A
実際のインスタンスの型のBが知りたい場合どうすればいい?
519:デフォルトの名無しさん
12/05/26 01:07:29.50
A a;
if (なんか分岐)
a = new B;
else
a = new C;
こうなると「型」を得るのは無理。
実行時型情報ならclassinfoプロパティで取れる
writeln(a.classinfo);
520:デフォルトの名無しさん
12/05/26 01:22:38.19
可能性のある型全部にcastしてみるとか
521:デフォルトの名無しさん
12/05/26 14:53:36.76
classinfoどうもです
522:デフォルトの名無しさん
12/05/26 16:50:46.09
>>511
Ubuntu10でやってみたけどstd.loaderがなんとかとは言われなかった
何か別の問題があるのかなぁ
以前はlinuxの方メンテしてくれてた人がいたんで当て込んでたんだけど動きない…
とりあえず動くようにはしてpull request出しときました
523:デフォルトの名無しさん
12/05/26 16:54:13.60
あれ、というかArch版Phobosにはstd.loader無いの?
524:デフォルトの名無しさん
12/05/26 17:23:36.68
>>522
調べたら2.059以降に削除。かなり昔にdepricatedが出てる機能。
ただ2.059で入れ直しても別のdepricatedエラーで無理だったからメンテナが居ないっぽい。
525:デフォルトの名無しさん
12/05/26 17:39:56.23
するとphobosは標準で動的ロードができないのか
tangoの時代来るな
526:デフォルトの名無しさん
12/05/26 18:25:00.08
tangoはもう眠らせてやってくれ
527:デフォルトの名無しさん
12/05/27 00:29:57.33
というかいい加減眠ってくれ
528:デフォルトの名無しさん
12/05/27 17:31:27.41
これの処理結果はどうなる?
assert([] == null);
assert("" == null);
assert([] is null);
assert("" is null);
529:デフォルトの名無しさん
12/05/27 18:40:21.65
1.空配列はnull
2.文字列比較演算子オーバーライドでnullと判断される?
3.空配列はnull
4.""は'\0'が末尾に付くのでnullじゃない
530:デフォルトの名無しさん
12/05/27 19:45:50.37
Dの空文字列は[]じゃないの?どちらにしてもemptyの使用を推奨
531:デフォルトの名無しさん
12/05/27 19:49:09.79
""は長さは0だけど、C(ゼロ終端)用に、その奥にヌル文字が付いてる。ただしリテラルに限る
532:デフォルトの名無しさん
12/05/27 20:06:16.29
コンパイルエラー
false
コンパイルエラー
false
でw 適当ww
533:デフォルトの名無しさん
12/05/27 20:41:44.70
バグくさいけど
知っておかないとそのうち痛い目に遭う
534:デフォルトの名無しさん
12/05/27 22:06:59.07
仕様通りじゃね?
俺は不思議には思わん
535:デフォルトの名無しさん
12/05/27 23:06:54.64
true
true
true
false -- assertion error
2番目が false あるいはコンパイルエラーなら納得できるんだが
暗黙変換でもしてるのか?
536:デフォルトの名無しさん
12/05/27 23:11:05.81
配列の==比較は
1. 長さをチェックして異なればfalse
2. 各要素foreachで、==演算子がfalseならfalse
3. trueを返す
2番は両方の要素数が0ならそもそも行われないので
falseを返す要素が無いのでtrue
537:デフォルトの名無しさん
12/05/27 23:15:51.26
公式の等値式と同一性式を参照
== nullはコンパイルエラーで弾かれてほしい
538:デフォルトの名無しさん
12/05/29 22:12:53.71
COMと相性悪いのか知らんがダイアログが開いた途端落ちるのは何でだぜ
URLリンク(ideone.com)
539:デフォルトの名無しさん
12/05/29 22:18:45.31
>>538
俺もwin32API使うときにそうなったけど、何が原因だったんだっけなぁ。
ポインタ周りだったかなぁ。
540:デフォルトの名無しさん
12/05/29 22:45:37.79
>>538
CoCreateInstanceが成功してるならIFileOpenDialogの定義が間違ってるとか?
後はIFileOpenDialogの使い方自体だけどよくわからんな
Vista以降の割と新しいIFだからWinMainから呼び出さないと死ぬとか?
COMはいろいろ使ったけど困ったことないなあ
541:538
12/05/29 23:10:18.59
GetOpenFileNameでも同じ結果のようだ
ただ、フック掛けると古いスタイルのダイアログになるんだがそのときは成功する
>>540
宣言は間違ってないし、C++でほぼ同じ感じでmainから呼び出すと成功する
542:デフォルトの名無しさん
12/05/29 23:17:06.21
もしかしてエラー6BA?
543:デフォルトの名無しさん
12/05/30 08:03:06.73
>>538
勘で答えるけどIFileOpenDialog* dlg;ではなくて?もしくはcast(void*)か
544:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 08:28:54.84
Segmentation faultが発生する。なぜだか分からん。教えてくだされよ。
URLリンク(codepad.org)
あと、Dで64ビットプログラムは作れますか?
545:デフォルトの名無しさん
12/05/30 08:37:34.97
64bitコードを吐けるDを実装したら作れるだろ
546:538
12/05/30 10:57:35.81
>>542
もうちょっとkwsk
>>543
Dではinterfaceはclass同様ポインタなんだ
そもそもそこの宣言が間違えてたらダイアログを開くことすら出来ない(Access Violationでね)
問題なのはダイアログが表示されてから落ちることなんだよね
547:デフォルトの名無しさん
12/05/30 12:07:34.51
>>546
詳しくは忘れたけど
GetOpenFileNameやリストビューなんかのWinのコントロールは
何のためか忘れたけど内部で必ずエラーコードとしてトラップされる
値を返す構成になってて、そのコードが6BAって感じだったはず
前者はダイアログが表示されてから、後者はフォーカスを持ったら
値が返ってくる感じになってる
548:デフォルトの名無しさん
12/05/30 12:36:34.07
>>544
プログラムが終了した時にデストラクタが呼ばれるけど、その時には標準出力が閉じてるから。
内部のオブジェクトがすぐに解放されないのは、その時点で本当に使われてないのか判断できないから。
あと、適当にリファクタリングしてみたw
重複コードがどうにかならないか検討中・・・
URLリンク(codepad.org)
549:デフォルトの名無しさん
12/05/30 12:39:20.26
>>548追記
型比較するだけなら、.nameいらないみたい。
550:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 13:08:07.27
>>548-549 有難うございます。GCってあまり賢くないのですね。。。
551:デフォルトの名無しさん
12/05/30 13:11:34.91
>>550
いやいや。
単純に内部のオブジェクトが別の場所で参照されてる可能性を考えてるだけ。
552:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 13:43:28.67
RbArrayの中身がうまく解放されるようにするにはどうすればいいですか?
553:デフォルトの名無しさん
12/05/30 14:10:52.74
>>552
単純な方法は、RbArrayのデストラクタで、内部のオブジェクトを明示的にdeleteする。
ただし、親のRbArrarも明示的にdeleteされる必要がある制約が付く。
554:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 14:34:53.00
これってバグかなあ。フォーラムで報告した方がいいかなあ。
555:片山博文MZボット ◆0lBZNi.Q7evd
12/05/30 14:47:49.93
報告したよ。
URLリンク(forum.dlang.org)
556:デフォルトの名無しさん
12/05/30 15:40:17.11
プログラム終了時のデストラクタでオブジェクトの参照をするのは
もともと正しく動かないと言われているよ
557:デフォルトの名無しさん
12/05/30 15:52:26.52
さらにリファクタリング。
と、D1/D2両対応する試み。(中途半端w)
URLリンク(codepad.org)
・・・結構大変だったの!w
558:デフォルトの名無しさん
12/05/30 15:56:03.65
んー。不具合なのかな。
リソース持つ物はそういうもんだと思ってた。
559:デフォルトの名無しさん
12/05/30 16:06:29.44
ところがドッコイ、仕様です!
URLリンク(www.kmonos.net)
GC が参照されなくなったオブジェクトを必ず解放するという保証はありません。
さらに、 GC がデストラクタを呼び出す順番も保証されません。
これはつまり、 GC管理下にあるオブジェクトへの参照をメンバとして持つオブジェクトのデストラクタを ガベージコレクタが呼び出すときには、それらの参照は既に無効となっている可能性があるということです。
従って、 デストラクタからはメンバオブジェクトを参照できません。
この規則は、 autoオブジェクトや DeleteExpressionで削除されるオブジェクト (GCが自動で解放することはないので、参照は必ず有効)には当てはまりません。
560:デフォルトの名無しさん
12/05/30 16:22:05.48
>>559って、一般的なGCのあるオブジェクト指向言語だと当たり前だと思ってた。
Disposeせな。
561:デフォルトの名無しさん
12/05/30 16:26:35.12
当たり前かな?
GCも作成順と逆順を保証してくれるのは結構ある気がする。
562:デフォルトの名無しさん
12/05/30 16:34:39.16
>>561
賢いのもあるんだなぁ
でもそうすると、複数オブジェクトの中で参照が循環しちゃうと、誰にも開放できないのが出来ちゃうんじゃないか?
親が消えれば必ず子が消えなければいけないというのも、不便かも。
563:デフォルトの名無しさん
12/05/30 16:37:40.70
>>562
参照カウンタじゃあるまいし。
564:デフォルトの名無しさん
12/05/30 17:20:23.19
でもそれでも循環参照が発生すれば結局segfaultも発生すると思うよ
565:デフォルトの名無しさん
12/05/30 19:03:53.80
日本語訳が更新されたっぽいぞ!
URLリンク(www.kmonos.net)
566:デフォルトの名無しさん
12/05/30 19:34:34.94
「Dがもう一個」の名言が消されてるからむむ、と思って概要を見に行ったら
あのマスコットはまだ頑張っていて絶望した
567:デフォルトの名無しさん
12/05/30 19:42:16.98
>>555
バグじゃないよGC持ってる系の言語初めて?
568:デフォルトの名無しさん
12/05/30 20:25:02.27
今日、D1の仕様和訳が、誤訳ってレベルじゃ無いってくらい、間違いだらけなのに気づいた。
まあ、D1だけどねw
569:デフォルトの名無しさん
12/05/30 20:49:17.52
暇にかまけて作ってしまった。後悔はしていない。
URLリンク(www.dotup.org)
っていうか、オリジナルのテイストって結構難しいな。
570:デフォルトの名無しさん
12/05/30 20:50:42.09
>>569
ああ・・・次はアクションゲーム部分だ・・・
571:デフォルトの名無しさん
12/05/30 20:58:10.10
え?アクション?えぇ??ちょっ・・・。Orz
うーん。D自体を触ったのが大分前なんだよなぁ。うーん。
ウィンドウが出て画像が貼れるライブラリってどれなんだろう。
SDLはよくわからないから普通のGUIキットがいいなー。速度、度返しで!
572:デフォルトの名無しさん
12/05/30 21:08:27.31
AliasThisテンプレート。
D1でD2のAlias thisの再現をする試み。
全然洗練されてないけど出しちゃうww
URLリンク(codepad.org)
573:デフォルトの名無しさん
12/05/30 21:12:01.39
アクションゲーム作るなら普通のGUIツールキットは使いづらいんじゃないかなぁ
それこそSDLとかのほうがやりやすい
574:デフォルトの名無しさん
12/05/30 22:00:21.15
せっかくだし、共同制作でもしようぜ!
とりあえず仕様決めよう。
URLリンク(sourceforge.jp)
アクションゲームでいいんだよね?
どんなアクションゲームにする?
あと、>>569とは別人です。
575:デフォルトの名無しさん
12/05/30 22:25:45.01
>>569の画像って使ってもいいのかなー。
576:デフォルトの名無しさん
12/05/30 22:28:09.04
dxlib4dとか最近あるよ
簡単だし、いいんじゃないかな
577:569
12/05/31 02:41:56.42
>>573
うーん。そうですかねー。うーん。
>>574
アカウントとったんですか!!!!!
仕事早すぎですよ。
>>575
欲しければMQO上げますけど。元画像の版権のことは知らない!
ちなみに、トランスフォーム済みでボーンとかは入ってません。
ムラムラして1時間で作ったんで・・・。
>>576
ほえー。それは楽そうですね~。
578:577
12/05/31 02:57:20.55
ファイルで上げるの面倒なので、いでおんに投げておきました。
URLリンク(ideone.com)
主要データをまるっとテキストエディタにコピーして、.mqoのファイルに保存してください。
メタセコイア良すぎる!!
ライセンスは面倒なので以下を適応します。
URLリンク(www.kmonos.net)
そこの作者の人の成果物にはお世話になったので自分も真似てみるてすと。
何が出るかな!何が出るかな!!
579:片山博文MZボット ◆0lBZNi.Q7evd
12/05/31 10:59:08.77
this(int i) { ... }
this(long l) { ... }
this(double d) { ... }
このようなコンストラクタの呼び出しのあいまいさを回避する方法ありますか?
580:デフォルトの名無しさん
12/05/31 12:26:32.97
>>577-578
まさかのハードコードww
まあ、実用上は問題ない。
画像が欲しかったのは、プロジェクトロゴに使いたかったからで、実際のゲームに使われるかどうかは知らないw
581:デフォルトの名無しさん
12/05/31 12:34:39.37
>>579
あいまいさの意味はわからないが、
呼び出し側で、型指定すればいい。
引数に、
cast(int)
cast(long)
cast(double) をつける。
582:片山博文MZボット ◆0lBZNi.Q7evd
12/05/31 12:44:29.60
>>581 有難う御座います。
583:538
12/05/31 14:06:37.21
バカな・・・
-L/SUBSYSTEM:WINDOWS:4.0で直った・・・だと・・・
M$は俺に謝罪しろ!今すぐにだ!
584:デフォルトの名無しさん
12/05/31 14:23:37.51
>>583
defファイル渡してなかったってオチ?w
585:デフォルトの名無しさん
12/05/31 14:35:25.51
>>583
4.0ってだいぶ古いぜ?
指定するなら少なくとも5.0(Windows 2000)にしたいし、それで動かないならAPIの宣言が古いんだろう。
586:538
12/05/31 14:51:10.07
>>584
VisualDに任せっきりなのでdefファイルてのは分からん
>>585
どっかで見たのが4.0だったんで特に意味は無い
でもありがとう5.0かそれ以上にしとく
587:デフォルトの名無しさん
12/05/31 18:52:23.64
>>579
あいまいになりようがなくね?
588:デフォルトの名無しさん
12/05/31 20:23:19.10
>>580
あ、それなら使ってもいいですよ。
あと、一般的な汎用の大の字のモデルを作るのはそんな難しくは無いですね。
589:デフォルトの名無しさん
12/05/31 20:44:12.44
>>580
あ、そうそう。ハードコードじゃないです。
メタセコイアっていうモデリングソフトがあるんですけど、それのLE板で作りました。
URLリンク(www.metaseq.net)
とてーもいいソフトなのでムラムラしたらためしてみるといいと思います。
俺は、シェア版欲しいんだけど、迷ってるところです。
590:デフォルトの名無しさん
12/05/31 22:44:37.01
import std.net.curl;すると隣家に怒られるんだけどもしかして外部のライブラリを拾ってこないとだめ?
環境はwindowsです
591:デフォルトの名無しさん
12/06/01 02:09:34.61
やってみたけどバイナリ拾ってきて自分でimplibしたら一応使えた
592:デフォルトの名無しさん
12/06/01 09:21:34.65
Ubuntu Linuxでもリンクエラーが出る
% dmd -ofdt dt.d -L-lcurl
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libphobos2.a(curl.o): In function `_D3std3net4curl4Curl19_sharedStaticCtor28FZv':
std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor28FZv+0xf): undefined reference to `curl_global_init'
593:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 16:24:38.48
D1とD2を両方インストールする
URLリンク(katahiromz.web.fc2.com)
594:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 16:28:02.53
AliasThis(修正済み)
URLリンク(codepad.org)
595:デフォルトの名無しさん
12/06/01 16:43:10.26
dlang.orgもdigitammars.comもどうしちゃったん?
596:デフォルトの名無しさん
12/06/01 16:53:31.72
>>594
おお、修正したか!
597:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:01:03.40
opIn, opIn_rがD1で動作しないみたいだが。。。
598:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:19:12.65
>>595 Digital Daemonというタイトルで戦闘機に乗った赤い悪魔が表示される。
599:デフォルトの名無しさん
12/06/01 17:19:48.95
>>597
あー、そういえばin演算子だけ、戻りの型が元の型と違うんだった。
is(Base T: T[])なら、T opIn(Base)だw
あとopInAssign()もいらなかったw
600:デフォルトの名無しさん
12/06/01 17:20:50.46
いや、T* opIn(Base)か?
どっちかなw
601:デフォルトの名無しさん
12/06/01 17:25:13.48
ちげえ、T* opIn(T)かw
もう、分けわかんなくなってきた。
602:デフォルトの名無しさん
12/06/01 17:27:05.88
と思ったら、もう修正してあるのか・・・ すまん。
603:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:33:08.27
opAssignを削った。
URLリンク(codepad.org)
604:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:36:35.73
>>603 ごめん、間違えた。
605:デフォルトの名無しさん
12/06/01 17:40:38.89
>>603
ん? よく見たら戻りの型がポインタじゃない?
606:片山博文MZボット ◆0lBZNi.Q7evd
12/06/01 17:45:05.82
>>594が正しくて、>>603が間違いです。
607:デフォルトの名無しさん
12/06/01 18:57:45.04
超オッケー!
URLリンク(codepad.org)
608:デフォルトの名無しさん
12/06/01 19:37:44.19
なんで今さらD1なんかで盛り上がってんだ?
609:デフォルトの名無しさん
12/06/01 19:38:20.51
陰謀を感じる
610:デフォルトの名無しさん
12/06/01 19:55:04.89
D1が完全終了するのは今年末だっけ?
半年しかないぞ
611:デフォルトの名無しさん
12/06/01 21:37:04.62
いつも終わったところで車輪の再発明するそういう趣味なんだよほっといてやれ
612:デフォルトの名無しさん
12/06/02 00:37:47.20
>>569 >>574
メタセコイア用のローダ書いたのでよかったらお使いやがれください。
URLリンク(dl.dropbox.com)
613:デフォルトの名無しさん
12/06/02 01:08:33.74
>>612
超いい仕事した
614:デフォルトの名無しさん
12/06/02 01:37:55.66
>>612
おー、まわる~。
615:デフォルトの名無しさん
12/06/02 02:05:51.07
>>612
すげー。
俺もパースしようと何度か挑戦したけど、いつもエネルギー切れて中途半端になってしまう。
めちゃくちゃ感動した。
616:デフォルトの名無しさん
12/06/02 05:50:05.78
コードがちゃんとDっぽい
つーかこれに地味に感動した→ "Dさん.mqo".read.to!string
俺もmqoパーサ書いたけどmqoってsjisなんだよなあ
readLineで読んでるんだけどファイル中に全角文字が来ると落ちる・・・
617:デフォルトの名無しさん
12/06/02 08:23:00.41
immutableなデータをdeleteするなんてことが許されていいんですか!?
618:デフォルトの名無しさん
12/06/02 18:19:43.63
>>612
sworks.compo.*も自作?
619:デフォルトの名無しさん
12/06/03 03:18:52.09
>>613-616 あざーーす
>>616 なんちゃってsjis対応しました。
URLリンク(dl.dropbox.com)
utf8と32以外の文字コードなんて滅びてしまえばいいのに
>>618 自作です。シコシコ作っては再利用できそうなのを集めてるんだけど意味フなバグが散見されます。
で、次は動かしたいと思うのが人情なんだが、アニメーションを記述するのでメジャーなのってなにがあるんだろう?
620:デフォルトの名無しさん
12/06/03 04:21:43.03
3Dの一般的なモーションデータならbvhらしいけど、メタセコ特化ならmikotoやMMDの形式はどうだろう
621:デフォルトの名無しさん
12/06/03 12:38:45.42
sjis対応乙したー
使う場合ライセンスとかどう扱えば良い?
622:デフォルトの名無しさん
12/06/03 14:14:04.32
socketstreamのavailableが常に0で来る・・・
623:デフォルトの名無しさん
12/06/03 16:01:59.28
std.streamのreadLineはseekableなstreamにしか"\r\n"改行対応してないせいで
seekableではないstreamであるsocketstreamを使ってHTTPやろうとしても
http応答のヘッダ最後の空行を読みきれなくて(\rだけ読んで満足してそのあとの\nを読まない)
本体データの先頭に"\n"が混入するんだけどスマートな回避策ないですか?
624:デフォルトの名無しさん
12/06/03 16:06:04.84
UTF16を可変長にしたやつが悪い
CJKの要求全部まとめて突っぱねればよかったんや