D言語なら俺に聞けat TECH
D言語なら俺に聞け - 暇つぶし2ch100:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 21:46:12
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?





101:デフォルトの名無しさん
06/04/08 16:36:49
リラテルってオブジェクトと似たようなもんなのか?

102:デフォルトの名無しさん
06/04/08 22:17:29
りてらるりてらるるるるるるー♪

103:デフォルトの名無しさん
06/04/10 14:18:59
いてらりゅ


104:デフォルトの名無しさん
06/07/18 00:39:07
up

105:デフォルトの名無しさん
06/09/28 18:31:13
ファイルの更新日時はどこでもらえばええですか。

106:デフォルトの名無しさん
06/09/28 23:24:32
どこまでぐぐった?


107:デフォルトの名無しさん
06/09/29 15:24:43
ディスプレイに顔がめり込むまで。

108:デフォルトの名無しさん
06/12/04 18:13:55
はじめてD言語でプログラムしてみたけど
linuxでSDLライブラリがコンパイルできない。

109:108
06/12/15 19:31:40
できた~ リンクが間違ってただけだった


110:デフォルトの名無しさん
06/12/29 14:13:57
Dって何でこんなにコンパイルが速いんですか?

111:デフォルトの名無しさん
07/01/11 12:09:55
>>110
びっくりするほど速いよね
フンクソ思いプリプロセッサがないからじゃない。


112:デフォルトの名無しさん
07/01/11 19:04:34
たしかに早いね~。でもPascalほどじゃないな。

113:デフォルトの名無しさん
07/01/12 01:28:07
パスカルってそんなに早くヤッてくれるんだΣ(´□`*)

114:デフォルトの名無しさん
07/01/13 11:08:23
コンパイル速度に関してはpascalが速い、っていうよりも
Borland Pascalが速いんだよ。

まぁ、言語仕様的にコンパイル速度を上げやすいってのもあるかな。


115:デフォルトの名無しさん
07/01/13 11:13:32
プログラム書くときに人間が半分コンパイルしてるもんな

116:デフォルトの名無しさん
07/01/13 12:37:25
ショボい最適化しかしていないのでは

117:デフォルトの名無しさん
07/01/13 13:07:33
前しか参照しない仕様が効いてるんじゃね?>Pascal

118:デフォルトの名無しさん
07/01/13 13:30:19
1. 言語仕様が高速化に向いている
2. 最適化がショボい
3. コンパイラのアルゴリズムが洗練されている

この 3 つがコンパイラが高速になる条件だな。
2 はない方がいい条件だけど。

119:デフォルトの名無しさん
07/01/13 13:51:58
完成品じゃなくて作り途中のためなら
それはそれでいいんじゃね

120:108
07/02/15 20:54:51
今度はalsaでpcmが鳴った

121:デフォルトの名無しさん
07/02/21 16:41:27
DMDはコンパイルが爆速なのに、
GDCは普通のC++のコンパイラ並の速度なのはなんでだぜ?

122:デフォルトの名無しさん
07/02/27 03:30:47
>>121
バックエンドがGCCだから
抽象化のためにかなり速度を犠牲にしている

123:デフォルトの名無しさん
07/02/27 18:03:39
コンパイル速度を上げられるような言語設計にこだわってるのに、
何か瀬がないな。

124:デフォルトの名無しさん
07/02/27 18:13:25
まぁ、本家が力を示せてるから、とりあえずそれで面目は立ってるよ。

それに細かいことを言えば、「コンパイル速度を上げられるような」言語設計というよりは
「コンパイラを比較的楽に作れる」言語設計を目指してるんだと思うし、
そういう風に考えれば、まぁ遅くても「話が違うだろ!」とまでは行かないから安心安心と。

いや、格好いいことじゃないけどね、遅いのは。

125:デフォルトの名無しさん
07/02/28 00:47:29
コンパイル速度なんて開発の進捗を遅らせるようなもんでもないしね

126:デフォルトの名無しさん
07/02/28 23:40:35
ソースが多くなってくると結構重要。

127:デフォルトの名無しさん
07/03/01 00:56:44
そうっすか。

128:デフォルトの名無しさん
07/03/19 14:02:45
import std.stream;
してるのに
readLine();
が使えない…
project.d(31): Error: undefined identifier writeLine
project.d(31): Error: function expected before (), not writeLine of type int
project.d(32): Error: undefined identifier readLine
project.d(32): Error: function expected before (), not readLine of type int
project.d(32): Error: cannot implicitly convert expression (readLine()) of ty
pe int to char[]
std.stream.readLine();しても
そんなの宣言されてない言われます…
どうしたら標準入力できるのでしょうか。

129:デフォルトの名無しさん
07/03/19 14:08:02
一応こんな感じに対処しましたがもっとスマートなやり方はありませんか。
char[] s;
s.length = 200;
gets (cast(char*)s);
s.length = std.c.string.strlen(cast(char*)s);

言いそびれましたが
WinXP Home SP2/Digital Mars D Compiler v1.009
環境変数
pathはPath;c:\dmd\dmd\bin;c\dmd\dm\bin;C:\borland\bcc55\Bin;c:\dmd\;
です

130:C言語
07/03/19 14:08:57
 ◆ピピー◆
ここでひとつ質問。
C言語で作ったのをコンピャイルして実行ファイルにしたあと、それをダブルクリックしても一瞬で終了しちゃいます。何とかしてシステムの動きを止められないでしょーか?
こんなおばかな僕に誰か救いの手をプリーズ。

131:デフォルトの名無しさん
07/03/19 22:05:34
>>130
{getchar();
fflush(stdin);}
{kbhit();}
などなどの方法がある。

132:デフォルトの名無しさん
07/03/19 22:06:12
kbhit();はconio.h(console input/output)をインクルードしてね

133:デフォルトの名無しさん
07/03/19 22:11:48
荒らしに反応するなよ。

134:デフォルトの名無しさん
07/03/20 23:49:32
conioってそういう意味だったのか、こにょやろう。

135:デフォルトの名無しさん
07/03/21 03:02:16
>>128
std.sreamのreadLineとかってのは、
Streamクラスのメンバ関数なので、
その(派生)クラスのオブジェクトをまず作らないといけない。
使用例はここにあった。
URLリンク(f17.aaa.livedoor.jp)

で、標準入出力で遊ぶならstd.cstreamの方を使うといいよ。
buf = din.readLine(); とかいう感じで使える。

136:デフォルトの名無しさん
07/03/22 23:24:55
>>135
ぬかった!!
dinだったのか…なるほどでございます。

cstreamを使えばmemorystreamをしなくてもdin.うんたらで出力できるんですね。
これは何というか、標準出力って概念を感じさせない使い方でこれまたエレガント…うっとり

137:デフォルトの名無しさん
07/03/24 00:22:14
CのpopenみたいなのをDでやるためにはどうしたらいいですか?

138:デフォルトの名無しさん
07/03/25 19:11:11
Cにpopenなどというものはない。
というか、popenつかえばいいのでは。

139:デフォルトの名無しさん
07/04/07 10:46:05
素数を出力したいのですが、なぜ3しか出力してくれないのでしょうか?
import std.stdio;
import std.file;
import std.string;
import std.stream;
int main()
{
    int[] i;
    int n;

    i.length = 1;
    i[0] = 3;

    for (n = 5; n < 10000; n+=2)
    {
        foreach (int c, v; i)
        {
            if ((n%v) == 0)
                break;
            if (i.length == (c+1))
            {
                i.length = i.length + 1;
                i[i.length] = n;
            }
        }
    }
    foreach (int c, v; i)
    {
        append ("sosu.txt", toString(v)~"\n");
    }
    return 0;
}

140:デフォルトの名無しさん
07/04/07 10:49:47
>>139
i[i.length] とか明らかにおかしいし、そもそも素数の始まりは 2 じゃろう

141:デフォルトの名無しさん
07/04/07 11:33:43
>>140
i[i.length]という部分をi[c+1]とした所巧く動作しました。
ありがとうございます。

別のアプローチも視野にいれてプログラムを組んでいたのですが、
とても中途半端な状態で公開してしまい恥ずかしい限りです…

142:デフォルトの名無しさん
07/04/09 09:45:55
標準入力をバイナリモードにすることってできますか?

D言語のリファレンス見た限り無理そうだったので、
Cのやり方で

import std.c.stdin;
extern(C) int setmode(int, int);
setmode(fileno(stdin), O_BINARY);

とかやってみたのですが、うまくいきません。
最終的に

#include <stdio.h>
#include <fcntl.h>
#include <io.h>

void setbin(void) {
setmode(fileno(stdin), O_BINARY);
}

こんな感じのCファイルを作って
extern(C) void setbin();

としてコンパイル時に.dと一緒にCの.objファイルも指定したのですが、リンクがうまくいかないみたいです。

なんか根本的な勘違いをしているような気がします。
こういう場合どうすればいいのでしょうか。

143:デフォルトの名無しさん
07/04/10 06:45:25
>>6
日本語でおk

144:デフォルトの名無しさん
07/04/13 18:18:14
>>142
確認してないから、一応聞くが、マルチしてないよな?
してなければ以下を試してみてくれ。
もしマルチしてたら帰ってくれ

import std.file;
int main()
{
    char [] k;

    k.length = 10;
    foreach (int c, v;k)
        k[c] = c;
    write ("new.txt", k);

    return 0;
}

145:デフォルトの名無しさん
07/04/13 18:19:20
本スレのほうにまるちっち

146:デフォルトの名無しさん
07/04/14 02:01:19
>>145
むしゃくしゃして
まるちっち作ってやった
反省してない

(((())))))))))))
  伐, ,/リリ
   l2] 2] 3
  (  ε  ノ
  「 ll二ll l
  (_l ., (_)
   (__(__l

147:デフォルトの名無しさん
07/05/10 02:41:22
マルチってなに~?

148:デフォルトの名無しさん
07/05/10 04:10:54
2chにおけるマルチの用法とは「俺は知ってるんだぜ」と
専用ブラウザを駆使し全スレヲッチ/5秒でこなす重度の2ch依存者が
公共の利益を代表しているかの様に錯覚し声高につまらない事を指摘する行為

忙しい朝っぱらに難癖付けて来るゴミ回収場常駐のキチガイババアと同種です。

149:デフォルトの名無しさん
07/05/10 16:33:40
あらやだ、自爆してるざます。

150:デフォルトの名無しさん
07/05/11 02:40:24
構造体で
struct foo
{
int x = 0;
}
foo mat[100];
って使うときに配列の構造体の変数xすべてに代入したいとき
mat.x = 1;
とかやるとプロパティじゃねぇみたいな感じで怒られるから
構造体の初期値で代入したり
mat[i].x = 1ってやってループ回して代入してるんですが
何かもっと便利な方法って無いですか?

151:デフォルトの名無しさん
07/05/11 02:50:07
foreach(ref s; mat) s.x = 1;

152:デフォルトの名無しさん
07/05/11 03:09:35
型タプルってテンプレートの引数に渡せない?

153:デフォルトの名無しさん
07/05/11 07:27:00
memset(&mat[0], 1, 100);

154:デフォルトの名無しさん
07/05/12 00:24:16
>>151,153
150です 便利な方法を教えていただきありがとうございました^^

155:デフォルトの名無しさん
07/05/22 00:33:27
DMDのコンパイラで警告は表示するけどそれを無視してコンパイルする設定
にするにはどうすればいいですか?

156:デフォルトの名無しさん
07/05/22 00:43:56
Dは方針として警告というものはないんじゃなかったっけ

157:デフォルトの名無しさん
07/05/22 00:45:31
あるがな。
dmd -w

158:デフォルトの名無しさん
07/05/23 00:30:43
たしかにdmd -wだと警告でコンパイル止まるな

159:デフォルトの名無しさん
07/05/24 19:35:40
長くてすみません。これの実行結果って30を期待したんですが、
そうならないのは何でなんでしょうか?

class A {
this() {
int f() { return x * 3; }
b = new B(&f);
}
int g(int n) {
x = n;
return b.g;
}
private int x;
private B b;
}
class B {
this(int delegate() f) { this.f = f; }
int g() { return f(); }
private int delegate() f;
}
void main()
{
A a = new A;
dout.writefln(a.g(10));
}


160:デフォルトの名無しさん
07/05/24 19:46:19
30 になるけど?

161:デフォルトの名無しさん
07/05/24 19:54:31
-debugモードだと3、-releaseモードだと362882156になった
-debug -Oで30、-release -Oで362882156

162:デフォルトの名無しさん
07/05/24 19:55:36
うお。オプションで変わるのか。

163:デフォルトの名無しさん
07/05/24 19:57:49
-O3 だとちゃんとなってるのに、
-O だと変になるな。

164:デフォルトの名無しさん
07/05/25 03:04:31
int f() { return x * 3; }
ここのxがインスタンス不明になるからじゃないの?


165:デフォルトの名無しさん
07/05/25 03:08:49
ああ、f が内部関数になってたのか。
これだと this が伝播しないってことか?

166:デフォルトの名無しさん
07/05/25 03:15:35
そんなことはないだろう。

b = new B({ return x * 3; });
もおかしな挙動をするし。

167:デフォルトの名無しさん
07/05/25 03:19:25
まあ、バグだな。

168:デフォルトの名無しさん
07/05/25 03:53:21
b = new B({ return x * 3; });
これだけの情報でどうやって x が A の面罵だって分かるのかな?

169:デフォルトの名無しさん
07/05/25 03:56:16
ああ、 this が電波するのか。
そうなってくれないと困る罠。
まあ、バグだな。

170:デフォルトの名無しさん
07/05/29 22:03:13
D言語って一瞬も流行らなかったな

171:デフォルトの名無しさん
07/05/29 22:24:31
>>170
なに言ってんの? 超流行まくりだよ、俺の頭の中では。

172:デフォルトの名無しさん
07/05/31 13:36:10
まだ仕様変更やコンパイラのバグ多いし
これからだろD言語は


・・・だよな?

173:デフォルトの名無しさん
07/06/02 17:43:29
動的配列の初期化ってまだ実装されてないですよね?
静的配列に動的配列渡すのもまだ未実装なんでしょうか?

174:デフォルトの名無しさん
07/06/02 17:50:26
void main() {
int[] a = [1, 2, 3];
int[3] b = a;
}

こういうこと?言わんとしていることがちょっとよくわからん。

175:173
07/06/02 18:08:23
言葉が足りずすいません
書いてくださったとおりの意味です


176:デフォルトの名無しさん
07/06/02 18:17:25
どの言語もLISPに近づこうと必死だな

177:デフォルトの名無しさん
07/06/02 20:45:59
Lispは神域に達してるからな。
人が神に近づこうとするのは自然だ。

178:デフォルトの名無しさん
07/06/02 23:49:29
Visual D
マダァ?(・∀・ )っ/凵⌒☆チンチン

179:デフォルトの名無しさん
07/06/03 00:20:50
それよりまずはTangoとDFLに期待

180:デフォルトの名無しさん
07/06/10 02:25:38
D言語で行列積とか計算するのに
標準的なライブラリってありますか?

既出でしたらすいません

181:デフォルトの名無しさん
07/06/24 03:19:36
>>180
漏れは聞いたことないな
つか他の言語でも百家争鳴なかんじじゃね?
テンプレートのライブラリも今のところ貧弱っぽいし
他の言語で書かれてあるのを利用するかポーティングするか
もしくは自分でつくるかしたほうがいいかも

182:デフォルトの名無しさん
07/06/24 03:36:07
CLAPACK を呼ぶとか。

183:デフォルトの名無しさん
07/06/25 02:17:50
POLICEを呼ぶとか

184:デフォルトの名無しさん
07/06/26 00:35:55
俺を呼ぶとか。

185:デフォルトの名無しさん
07/06/26 05:36:33
嵐を呼ぶとか

186:デフォルトの名無しさん
07/06/26 17:56:03
ちょ おまいらwwwww

ところでdmd 1.x系統で何事もなく動いてたプログラムを
dmd 2.0でコンパイルしたら実行時に
Error: Stack Overflow
って出て止まるんだけどこれはプログラムに難点があると見るべき?

187:デフォルトの名無しさん
07/06/26 18:03:23
コンパイラがスタックオーバーフローするなら、コンパイラの不具合くさいが、
実際にソース見てみないことにはわからんな。

188:デフォルトの名無しさん
07/06/26 18:19:59
>>187
レスサンクス
ソース眺めてたら原因の箇所がつかめたっぽいので
ちょっと調べてみるよ


189:デフォルトの名無しさん
07/06/29 02:47:37
dmd 1.x系と2.x系ってお手軽に切り替えれたりする?

190:デフォルトの名無しさん
07/06/29 05:44:24
D1.xとD2.xのソースコードに互換性はない。

191:デフォルトの名無しさん
07/06/29 11:28:07
うはwwwwwwおkwwwwwww
コンパイラはオプションで切り替えれたりしない?

192:デフォルトの名無しさん
07/06/29 17:02:55
dmd -v1

193:デフォルトの名無しさん
07/06/29 19:55:55
それやるとdmd 1.x系のでコンパイル通ってたのでも通らなかったりする

194:デフォルトの名無しさん
07/07/07 01:23:23
D言語で配列aの要素全体を5で割りたいとかかけたいときって

a * 5
a / 5

とかいうやり方が許されていないのは配列演算がまだ実装されてないから?

195:デフォルトの名無しさん
07/07/07 01:35:07
yes.

196:デフォルトの名無しさん
07/07/07 02:22:50
>>195 thanks.

197:デフォルトの名無しさん
07/07/07 02:33:25
FORTRAN 並みの配列演算が行えるといいな。

198:デフォルトの名無しさん
07/07/07 02:34:08
間違った。FORTRAN じゃなくて Fortran だ。90 以降。

199:デフォルトの名無しさん
07/07/07 03:12:44
別に間違いというほどのことじゃないだろ
どのみち今の段階じゃバグ多すぎでとても数値計算に使う気になれナス

200:デフォルトの名無しさん
07/07/07 03:28:26
まぁそれでも将来的にはFortran並みの実装を期待

201:デフォルトの名無しさん
07/07/07 03:33:08
a[:] = b[:] * 2 + c[:]; とか。

202:デフォルトの名無しさん
07/07/07 04:04:18
標準関数にmatmulも入って欲しいな
配列演算じゃないけど個人的には**も使いたい


203:デフォルトの名無しさん
07/07/08 04:20:42
そういえばLatex→Fortranと入ってきた俺はC言語にいたって
pow関数を使わなきゃいけないと知ったときやたら面倒だなと思った

204:デフォルトの名無しさん
07/07/20 09:36:57
powってコストが高そうなイメージがあるんで掛け算で書いてたなあ

205:デフォルトの名無しさん
07/08/10 01:19:29
age!()

206:デフォルトの名無しさん
07/08/12 03:02:37
こっちはずいぶん過疎ってるなぁ・・・・


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch