1 :
デフォルトの名無しさん :
05/02/12 10:35:10 D言語一筋で10年ほど勉強しました。 D言語のことなら知らないこと意外ならすべてわかる。 だからなんでも聞いてくれ。 ただし、プライベートなことには答えられねーぞ
好きな色はなんですか?
3 :
デフォルトの名無しさん :05/02/12 11:16:53
そちらは晴れですか?
きのう牛丼食った?
5 :
デフォルトの名無しさん :05/02/12 13:55:41
>>1 漏れもDのことなら知らないこと以外なんでもわかるな。
>>4 車で突っ込んだり、売り切れだって切れたり、すでに発症してる人たちもいるようで・・・
8 :
デフォルトの名無しさん :05/02/12 20:11:21
注意↑グロ画像
>>8-12 自演乙
時に連想配列にnull代入すると初期化されるんだが、
仕組み教えてくれ。
14 :
デフォルメの名無しさん :05/02/22 14:06:49
D言語のコンパイラはデフォルトで全てのAPI使えねえから
俺には無理だというところがむかつくぜ。
>>1 は10年間は嘘だろう!さすがに。
そんな嘘吐き
>>1 を叩く!!徹底的にな!!
↑エロ
17 :
デフォルトの名無しさん :05/02/22 20:40:05
ワクチンソフトが必須だと思った瞬間
jpnicの検索結果 61.194.13.120 InfoSphere (株式会社NTTPCコミュニケーションズ) (InfoSphere (NTT PC Communications, Inc.)) SUBA-029-377 [サブアロケーション] 61.194.13.0 有限会社 グローバルホステリングサービス (Global Hosting Service) GHS-HOST0001 [61.194.13.112 <-> 61.194.13.127] 61.194.13.112/28
失せろ
28 :
デフォルトの名無しさん :05/03/04 12:47:43
ヘイ!ユー!!
29 :
デフォルトの名無しさん :05/03/04 23:30:26
1のたこやろう!!
>1 何歳?10歳?
31 :
デフォルトの名無しさん :05/03/04 23:37:21
_,,,,,,,, , - ' ゙ `` - 、_,,,,, ,r' /=ミ / 彡ll',''´ . / 彡lll !-- .、 ,、、、、,,, 彡lノ l,,,,,__ / ___ 'r''゙ヽ . |`゙'' ./ `'゙'''" .〉,l | |. ,' // . ',. ,' , r' . ゙, ゙'ー -` l | ゙、''゙ ,,、二''- ノ l、 ''''''''7'ヽ ''' / /`〉`゙T'''''''''' l ` 、,,,,、- ' " / /.| | . | | .l i / ./ | | | | | l / ./ .| | . | | | l / / | | | | | ', / / l .l 【ゴールデンレス】 このレスを見た人はコピペでもいいので 10分以内に3つのスレへ貼り付けてください。 そうすれば14日後好きな人から告白されるわ宝くじは当たるわ 出世しまくるわ体の悪い所全部治るわでえらい事です
32 :
デフォルトの名無しさん :05/03/04 23:39:32
今のコンパイラで使えるwindows.dがないみたいなんだが・・・. 実際のところどうなの. 教えてエロい人!
33 :
デフォルトの名無しさん :05/03/04 23:48:52
あれ,書き込みがこっちにコピペされてるな,してくれたのか. 別スレの方で windows.h あるじゃんという返事をもらったけど, どういうことか教えてもらえないですか? 自分で変換しろってこと? ってことは,ないってことでは・・・.
ウメ
35 :
デフォルトの名無しさん :05/03/05 00:11:51
おいおまえら!削除する方向が間違っているぞ。 向こうを本陣にすべきだった。 そのことに関する私の見解。 windows.hあるじゃん 2つダウンロードしたでしょう? 両方検索してみましたか? だがデフォルトで全てのAPI使えない問題 を突破できずに居る私。
36 :
デフォルトの名無しさん :05/03/05 00:16:35
というかなんでSAMPLEの分際でコンパイルエラーが出るんだよ!!
37 :
デフォルトの名無しさん :05/03/05 00:23:36
windows.h と windows.d の区別はされておられるのだろうか?
平行線になるとあれなので一度まとめますね.
windows.dとして日本で有名なのは
http://hp.vector.co.jp/authors/VA028375/d/windows.h.html ですが,0.111あたり(?)のアップデートでそのままでは使えなくなりました.
そこで,0.115に対応した同程度によい質のものがないのか,という質問でした.
上記のURLにあるやつを修正すればいいのですが,どこがまずいのかわからんのです.
コンパイルは通せたけど,Win32APIのCreate()で作ったウィンドウが表示されないという
トラブルが解決できないので.
38 :
デフォルトの名無しさん :05/03/05 00:27:32
Create() じゃなくて CreateWindow() だ...
39 :
デフォルトの名無しさん :05/03/05 00:29:35
ああこのサイト見た事ある。 Win9xを馬鹿にしておいてすぐ謝ってた、実はいい人だ。 これを正しく使うにはフォルダとか構成どうするのですか? 二つの区別はわからないが.hをおしえてと言ってたよ。
CreateWindowExの方はどうです?
41 :
デフォルトの名無しさん :05/03/05 00:45:03
>>40 どっちでも同じでした.
というか,下のGetMessageA()から帰ってきていないような気配が・・・.
引数これじゃまずいのかな.
public void messageLoop()
{
MSG msg;
BOOL bRet;
while(1)
{
bRet = GetMessageA( &msg, cast(HWND)null, 0, 0 );
if(bRet == -1)
{
// handle the error and possibly exit
break;
}
else if(bRet == 0)
{
break;
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
}
GetMessageAはAが必要なら DispatchMessageもA付ける必要があるんじゃないか?
windows.dつかってるならその逆とか GetMessageAのAを外してみるとか?
45 :
デフォルトの名無しさん :05/03/05 00:53:26
boolなら答えは2つしかなさそうだが。
>>39 自分は
ttp://hp.vector.co.jp/authors/VA028375/d/lib_dmd_windows.7z を\dmd\src\phobos\win32 以下および \dmd\src\phobos\win32\ansi 以下に
windows.d があるように展開して,\dmd\src\phobos に
win32.lib と win32a.lib を置いてる.
そしてソースの冒頭で
import win32.ansi.windows; // std.c.windows.windows; // 正規版は後者
として windows.d その他もろもろを読み込んで,
dmd main.d \dm\lib\Gdi32.lib \dmd\src\phobos\win32a.lib
としてコンパイルしている.
47 :
デフォルトの名無しさん :05/03/05 00:58:01
>>44 は答えを書く気が無いくせをしてしゃしゃり出やがる。
念のために聞くけど、 CreateWindow関数呼ぶときにWS_VISIBLEをつける。 またはその後にShowWindow関数呼ぶ。 のどちらかを行ってる?
>>49 付けてますよ.
なんでだろうなぁ.
以下,一部抜粋.
// ウィンドウクラスの登録
HINSTANCE hInst = GetModuleHandle(null);
WNDCLASS wc;
wc.lpszClassName = "DFRAME";
wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = &WindowProc;
wc.hInstance = hInst;
wc.hIcon = LoadIcon(cast(HINSTANCE) null, IDI_APPLICATION);
wc.hCursor = LoadCursor(cast(HINSTANCE) null, IDC_ARROW);
wc.hbrBackground = cast(HBRUSH) (COLOR_WINDOW + 1);
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;
public void create(char[] inTitle, int inX, int inY, int inWidth, int inHeight)
{
HINSTANCE hInst = GetModuleHandle(null);
hWnd = CreateWindow("DFRAME", inTitle, WS_THICKFRAME |
WS_MAXIMIZEBOX | WS_MINIMIZEBOX | WS_SYSMENU | WS_VISIBLE,
inX, inY, inWidth, inHeight, HWND_DESKTOP,
null, hInst, null);
}
>>50 ん、RegisterClass関数をちゃんと呼んでる?
>>51 あ,ごめんなさい.
ただの assert() だと思ってわざと消しちゃいました.
...
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;
assert(RegisterClass(&wc));
これが正しいものです.
コンパイラオプションに-releaseを加えるとassert文って消えるから、 RegisterClassはassert文の外に出したほうが良いよ。 でも、これが原因じゃないだろうし、分からんなぁ。
>>49 49さま,それが原因でした(^^;
ありがとうございます.
てことは,コンパイラが型に厳しくなったために発生した windows.d のコンパイルエラーを取ったら,ちゃんと動いたと. そういうことのようです. お騒がせしました(^^;
解決したなら良し。 assert文の罠は結構引っかりやすいから、要注意。 ......俺もSDL_Init関数で同じ罠にかかった経験あるからな。
SDL組み込んだバイナリをデバッガで実行すると、 SDL内部で必ずアクセス違反が出るんだけど、仕様ですか?
(普通に実行すると、ちゃんと動いている様には見える。)
LinuxのカーネルをDで書き直そうとしようとしてる奴いるか?
60 :
デフォルトの名無しさん :05/03/05 17:37:38
というかこのスレは1に聞くスレだろ!?
61 :
デフォルトの名無しさん :05/03/05 21:00:13
>>59 みんな考えることは同じなんだねぇ。。。
ただ、ガーベジコレクションの問題が有って、D自体のソースが公表されないと
難しいと思うんだけど、その辺どうなの?
D側も、OSレベルでアプリケーションのメモリ管理が欲しいと思ってるし、
OS側も、アプリケーションのガベコレを行いたいと思ってる様だけど、
ここに手を付けた人はいないんだよね。。。
D言語という、新しい言語が出来たんだから、だれかが、10年ぶりにピュアに
新しいOSを発表しても面白かろうと思うんだけど、
? ガベコレ初心者ですか?
新しい言語なんか毎年腐るほど産まれているし。 ピュアなのは>61の脳内
ピュアに新しいOSだってちょくちょく生まれてるぞ。
D言語はピュアな心のモチヌシにしか見えません。
66 :
デフォルトの名無しさん :05/03/06 15:56:21
今や、ライブラリどころか、勝負はフレームワークやIDEの領域に映ってきてるから、 D言語は来ないだろ…。 言語仕様で勝負する時代はもう10年前に通り過ぎてる。
通り過ぎちゃいないだろ。 ただDが凡庸なだけで。
VectorCの方が面白そうだよ
それただのCコンパイラじゃん
タダ!?フリー!?でも今はフリーなだけでは驚かない。
スレスト隊長「俺の出番か?」 相談役「まだ早いのかもしれませんよ。」 スレスト隊長「・・・。まあよい。そのうち来るさ。」
スレスト隊長「↑そちらはまじめなDスレだ!」 隊員A「誘導したら駄目と言うことですか?」 スレスト隊長「そうだ。」
74 :
デフォルトの名無しさん :2005/05/08(日) 20:08:53
ここウンコすれ
75 :
デフォルトの名無しさん :2005/05/08(日) 20:11:29
この速度ならぬるぽ
ガッ
78 :
デフォルトの名無しさん :2005/08/01(月) 21:43:34
D言語スレDat落ちAge
うわ、マジで落ちてる。 油断してた。
超電磁スピンVの字正拳突きって隠しじゃないよね?
81 :
デフォルトの名無しさん :2005/08/02(火) 23:29:59
本スレがこっちより先に落ちるとかワロスw
82 :
デフォルトの名無しさん :2005/08/02(火) 23:35:06
なんだ、立ったのか。
やねうらおさんのライブラリ開発が去年の2月15日でいきなり止まってるけど何かあったんんだろうか…
D言語に見切りをつけた。 か飽きた。
ガーン
つーかあんなダサいライブラリいらない。
あの、プログラム初心者なんですけど クラスの宣言の意味がようわからないので教えてください a b = new a; で、どうしてクラス宣言するときnewしないとだめなんですか?? bっていうのはaの型へのポインタなんでしょうか・・・? 今までCしかやったことないのでよくわかりません、助けてください
なぜnewしないと駄目なのかという理由は、classはヒープに確保するというのがD言語の設計だから。 ようするにbはaの型へのポインタ(と似たような)物というわけで、その理解で問題ない。
std.processをimportしようとしたらエラーでるんだけど、バグ?? linuxなんだけど、どうすればできますか?
92 :
デフォルトの名無しさん :2006/02/14(火) 06:46:36
Dの入門書ない?
そういえばそんなのあったなw
96 :
デフォルトの名無しさん :2006/02/18(土) 23:06:20
あげ
サンプルソースがコンパイルできないです。 パスは通したが、未定義シンボルって言われますた
98 :
デフォルトの名無しさん :2006/03/09(木) 00:04:14
phobosをコンパイルしていないからと思われ。
TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
リラテルってオブジェクトと似たようなもんなのか?
りてらるりてらるるるるるるー♪
いてらりゅ
104 :
デフォルトの名無しさん :2006/07/18(火) 00:39:07
up
105 :
デフォルトの名無しさん :2006/09/28(木) 18:31:13
ファイルの更新日時はどこでもらえばええですか。
106 :
デフォルトの名無しさん :2006/09/28(木) 23:24:32
どこまでぐぐった?
ディスプレイに顔がめり込むまで。
108 :
デフォルトの名無しさん :2006/12/04(月) 18:13:55
はじめてD言語でプログラムしてみたけど linuxでSDLライブラリがコンパイルできない。
109 :
108 :2006/12/15(金) 19:31:40
できた〜 リンクが間違ってただけだった
Dって何でこんなにコンパイルが速いんですか?
>>110 びっくりするほど速いよね
フンクソ思いプリプロセッサがないからじゃない。
たしかに早いね〜。でもPascalほどじゃないな。
パスカルってそんなに早くヤッてくれるんだΣ(´□`*)
コンパイル速度に関してはpascalが速い、っていうよりも Borland Pascalが速いんだよ。 まぁ、言語仕様的にコンパイル速度を上げやすいってのもあるかな。
プログラム書くときに人間が半分コンパイルしてるもんな
116 :
デフォルトの名無しさん :2007/01/13(土) 12:37:25
ショボい最適化しかしていないのでは
前しか参照しない仕様が効いてるんじゃね?>Pascal
1. 言語仕様が高速化に向いている 2. 最適化がショボい 3. コンパイラのアルゴリズムが洗練されている この 3 つがコンパイラが高速になる条件だな。 2 はない方がいい条件だけど。
完成品じゃなくて作り途中のためなら それはそれでいいんじゃね
120 :
108 :2007/02/15(木) 20:54:51
今度はalsaでpcmが鳴った
DMDはコンパイルが爆速なのに、 GDCは普通のC++のコンパイラ並の速度なのはなんでだぜ?
>>121 バックエンドがGCCだから
抽象化のためにかなり速度を犠牲にしている
コンパイル速度を上げられるような言語設計にこだわってるのに、 何か瀬がないな。
まぁ、本家が力を示せてるから、とりあえずそれで面目は立ってるよ。 それに細かいことを言えば、「コンパイル速度を上げられるような」言語設計というよりは 「コンパイラを比較的楽に作れる」言語設計を目指してるんだと思うし、 そういう風に考えれば、まぁ遅くても「話が違うだろ!」とまでは行かないから安心安心と。 いや、格好いいことじゃないけどね、遅いのは。
コンパイル速度なんて開発の進捗を遅らせるようなもんでもないしね
ソースが多くなってくると結構重要。
そうっすか。
128 :
デフォルトの名無しさん :2007/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 :
デフォルトの名無しさん :2007/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言語 :2007/03/19(月) 14:08:57
◆ピピー◆ ここでひとつ質問。 C言語で作ったのをコンピャイルして実行ファイルにしたあと、それをダブルクリックしても一瞬で終了しちゃいます。何とかしてシステムの動きを止められないでしょーか? こんなおばかな僕に誰か救いの手をプリーズ。
>>130 {getchar();
fflush(stdin);}
{kbhit();}
などなどの方法がある。
kbhit();はconio.h(console input/output)をインクルードしてね
荒らしに反応するなよ。
conioってそういう意味だったのか、こにょやろう。
>>135 ぬかった!!
dinだったのか…なるほどでございます。
cstreamを使えばmemorystreamをしなくてもdin.うんたらで出力できるんですね。
これは何というか、標準出力って概念を感じさせない使い方でこれまたエレガント…うっとり
CのpopenみたいなのをDでやるためにはどうしたらいいですか?
Cにpopenなどというものはない。 というか、popenつかえばいいのでは。
素数を出力したいのですが、なぜ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; }
>>139 i[i.length] とか明らかにおかしいし、そもそも素数の始まりは 2 じゃろう
>>140 i[i.length]という部分をi[c+1]とした所巧く動作しました。
ありがとうございます。
別のアプローチも視野にいれてプログラムを組んでいたのですが、
とても中途半端な状態で公開してしまい恥ずかしい限りです…
142 :
デフォルトの名無しさん :2007/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ファイルも指定したのですが、リンクがうまくいかないみたいです。 なんか根本的な勘違いをしているような気がします。 こういう場合どうすればいいのでしょうか。
>>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 むしゃくしゃして
まるちっち作ってやった
反省してない
(((())))))))))))
伐, ,/リリ
l2] 2] 3
( ε ノ
「 ll二ll l
(_l ., (_)
(__(__l
マルチってなに〜?
2chにおけるマルチの用法とは「俺は知ってるんだぜ」と 専用ブラウザを駆使し全スレヲッチ/5秒でこなす重度の2ch依存者が 公共の利益を代表しているかの様に錯覚し声高につまらない事を指摘する行為 忙しい朝っぱらに難癖付けて来るゴミ回収場常駐のキチガイババアと同種です。
あらやだ、自爆してるざます。
150 :
デフォルトの名無しさん :2007/05/11(金) 02:40:24
構造体で struct foo { int x = 0; } foo mat[100]; って使うときに配列の構造体の変数xすべてに代入したいとき mat.x = 1; とかやるとプロパティじゃねぇみたいな感じで怒られるから 構造体の初期値で代入したり mat[i].x = 1ってやってループ回して代入してるんですが 何かもっと便利な方法って無いですか?
foreach(ref s; mat) s.x = 1;
152 :
デフォルトの名無しさん :2007/05/11(金) 03:09:35
型タプルってテンプレートの引数に渡せない?
memset(&mat[0], 1, 100);
>>151 ,153
150です 便利な方法を教えていただきありがとうございました^^
155 :
デフォルトの名無しさん :2007/05/22(火) 00:33:27
DMDのコンパイラで警告は表示するけどそれを無視してコンパイルする設定 にするにはどうすればいいですか?
Dは方針として警告というものはないんじゃなかったっけ
あるがな。 dmd -w
たしかにdmd -wだと警告でコンパイル止まるな
長くてすみません。これの実行結果って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)); }
30 になるけど?
-debugモードだと3、-releaseモードだと362882156になった -debug -Oで30、-release -Oで362882156
うお。オプションで変わるのか。
-O3 だとちゃんとなってるのに、 -O だと変になるな。
int f() { return x * 3; } ここのxがインスタンス不明になるからじゃないの?
ああ、f が内部関数になってたのか。 これだと this が伝播しないってことか?
そんなことはないだろう。 b = new B({ return x * 3; }); もおかしな挙動をするし。
まあ、バグだな。
b = new B({ return x * 3; }); これだけの情報でどうやって x が A の面罵だって分かるのかな?
ああ、 this が電波するのか。 そうなってくれないと困る罠。 まあ、バグだな。
D言語って一瞬も流行らなかったな
171 :
デフォルトの名無しさん :2007/05/29(火) 22:24:31
>>170 なに言ってんの? 超流行まくりだよ、俺の頭の中では。
まだ仕様変更やコンパイラのバグ多いし これからだろD言語は ・・・だよな?
173 :
デフォルトの名無しさん :2007/06/02(土) 17:43:29
動的配列の初期化ってまだ実装されてないですよね? 静的配列に動的配列渡すのもまだ未実装なんでしょうか?
void main() { int[] a = [1, 2, 3]; int[3] b = a; } こういうこと?言わんとしていることがちょっとよくわからん。
175 :
173 :2007/06/02(土) 18:08:23
言葉が足りずすいません 書いてくださったとおりの意味です
どの言語もLISPに近づこうと必死だな
Lispは神域に達してるからな。 人が神に近づこうとするのは自然だ。
Visual D マダァ?(・∀・ )っ/凵⌒☆チンチン
それよりまずはTangoとDFLに期待
180 :
デフォルトの名無しさん :2007/06/10(日) 02:25:38
D言語で行列積とか計算するのに 標準的なライブラリってありますか? 既出でしたらすいません
>>180 漏れは聞いたことないな
つか他の言語でも百家争鳴なかんじじゃね?
テンプレートのライブラリも今のところ貧弱っぽいし
他の言語で書かれてあるのを利用するかポーティングするか
もしくは自分でつくるかしたほうがいいかも
CLAPACK を呼ぶとか。
POLICEを呼ぶとか
俺を呼ぶとか。
嵐を呼ぶとか
ちょ おまいらwwwww ところでdmd 1.x系統で何事もなく動いてたプログラムを dmd 2.0でコンパイルしたら実行時に Error: Stack Overflow って出て止まるんだけどこれはプログラムに難点があると見るべき?
コンパイラがスタックオーバーフローするなら、コンパイラの不具合くさいが、 実際にソース見てみないことにはわからんな。
>>187 レスサンクス
ソース眺めてたら原因の箇所がつかめたっぽいので
ちょっと調べてみるよ
dmd 1.x系と2.x系ってお手軽に切り替えれたりする?
D1.xとD2.xのソースコードに互換性はない。
うはwwwwwwおkwwwwwww コンパイラはオプションで切り替えれたりしない?
dmd -v1
それやるとdmd 1.x系のでコンパイル通ってたのでも通らなかったりする
194 :
デフォルトの名無しさん :2007/07/07(土) 01:23:23
D言語で配列aの要素全体を5で割りたいとかかけたいときって a * 5 a / 5 とかいうやり方が許されていないのは配列演算がまだ実装されてないから?
yes.
FORTRAN 並みの配列演算が行えるといいな。
間違った。FORTRAN じゃなくて Fortran だ。90 以降。
別に間違いというほどのことじゃないだろ どのみち今の段階じゃバグ多すぎでとても数値計算に使う気になれナス
まぁそれでも将来的にはFortran並みの実装を期待
a[:] = b[:] * 2 + c[:]; とか。
標準関数にmatmulも入って欲しいな 配列演算じゃないけど個人的には**も使いたい
そういえばLatex→Fortranと入ってきた俺はC言語にいたって pow関数を使わなきゃいけないと知ったときやたら面倒だなと思った
powってコストが高そうなイメージがあるんで掛け算で書いてたなあ
205 :
デフォルトの名無しさん :2007/08/10(金) 01:19:29
age!()
こっちはずいぶん過疎ってるなぁ・・・・
Visual D 2008 Express Edition マダー?
D/CLI マダー?
209 :
デフォルトの名無しさん :2007/08/26(日) 02:23:52
Dで使えるyaccやlexありますか?
D言語ってphobosを使って書く分には実行ファイルだけで動きますか? phobosもランタイムライブラリだと聞いたので、実行する側にも そのランタイムがないと動かないのですか? よろしくおねがいします。
スタチックリンクされる。
>>212 やっぱりそうなんですか・・・ほとんど空のコードでも結構な容量だったんで。
でも公式に「Phobos is the standard runtime library that comes with the D language compiler.」なんて書いてあって・・・
ライブラリが静的動的どうこうという話について私の理解が足りてないのでしょうね・・・
ランタイムライブラリって、動的か静的かに関係ない言い方だったんですね… VBのように外部ファイルとしてランタイムが提供されているのに慣れていたので てっきりランタイムライブラリというのは動的リンクするものだと思っていました ありがとうございました
215 :
デフォルトの名無しさん :2007/10/03(水) 15:37:19
OSXでgcc-5363をインストール後、 int main() { printf("HelloWorld!\n"); return 0; } 上記の内容をtest.dで作成しコマンドラインにて #gdmd test.d をすると /usr/bin/ld: unknown flag: -macosx_version_min collect2: ld returned 1 exit status となってしまい、コンパイル出来ません。 どうしたら良いんでしょう。途方に暮れています
D1.0とD2.0の違いについて教えてください。 1.0は仕様凍結でバージョンアップはバグフィックスのみで、 2.0は仕様未確定だけど新機能使えるって認識でOK? あと、今のところ大きな変更は const な引数や戻り値が使えることになったのと 最近追加された extern(C++) ぐらい?
1.0が仕様凍結されている保証はないと思う 他はそんな感じ
>>217 ありがとうございます。
うーん、まだ仕様が変わる可能性があるんですか。
互換性のなくなる仕様変更はさすがにやめてほしいなぁ。
変えないと明言したと聞いたことはないけど わざわざ2.0を作ったんだから互換性がなくなるような変更は 1.0ではもうない可能性は高いと推測はできる でも推測止まり
220 :
デフォルトの名無しさん :2007/12/01(土) 20:49:51
どう考えてもJavascriptを過小評価しすぎ。 それともJScriptとJavascriptとActionScriptを別言語扱いしたのかな。
void[]というのは、メモリ領域を先頭のポインタとバイト数のペアで扱うための型、という認識であっていますか?
この言語ちゃんと実装できるの? 在任中には業務で使わない気がして来た
コンパイラが実装できた部分が言語仕様として公開されてる。 バグが結構あるし、何より仕様がころころ変わるから、業務には使わないほうが賢明だが。
D 3.0 で const 関連がなかった事にされたりして
20年後ぐらいには実用言語になってないかな。
C++1xが出る頃にはある程度使えるようになってるんじゃね。
で、その x は 36 進(hexatrigesimal)の略なんだよね
いいえ,hexatetragesimalです。
コンパイラのバグで生成されたネイティブコードで不具合とかいう事象報告されてる? 不具合をアセンブリで追わなきゃならないんだったら趣味的にも使う気になれんのだが
この言語GCいらんくね?
配列を連結するとコピーが作られるし、 配列のスライスも配列として扱えるから、 GCは必要不可欠。
>>230 何はともあれ再現コードplz
昔四則演算だったかとても基本の部分にバグがあって計算間違ったりしてたなあw
さすがに発見後すぐ対応されたみたいだけども
>>232 スタックに積んだら?
スコープアウト後も保持が無くなるからアウトかいな
標準ライブラリからして配列のコピーやスライスをどんどん返してくるから、 GCなしではかなり生産性落ちると思う。
教えてくれ const char*を帰すconstメンバ関数ってどーやって書くの?
class C { const const(char)* f() { return "D万歳!"; } }
>>237 テンキュー
やってみる
あと
class C{
}
const C c[10];
void foo(const C[] a){
c[3..6]=a[0];
}
こういうんが通らない
cはconstだっつわれたから
C[10]c;
で宣言したら
Cからconst Cに出来んよ猿みたいに怒られた
cast(C)(a[0])とすれば通るが不細工すぎる
良い解をplz
>>237 ついでに教えてくれ
C(++)では関数内のリテラルはスタックを指すけどGCのあるDでは例に上げてくれた書き方が許される?
>>238 逆
const CからCに出来んよ、って怒られるんだっちゃ
>>238 C[10] c;
void foo(C[] a){
c[3..6]=a[0];
}
>>239 文字列リテラルはinvariant(char)[N]型の配列だからどこかから参照してる限りは生きてる。
_
245 :
デフォルトの名無しさん :2008/01/23(水) 17:56:50
>>243 コピーして渡せばいいじゃん。
しかし、オブジェクトでない限りサイズ取得方法が・・・sizeofで取れるんだっけ。
Dの配列は長さと先頭ポインタの組だから常にlengthプロパティで長さを取得できるよ
>>244 _か、そうか、d
>>245 まあそうなんだが静的解決させたい
どーでもいいが
const C c[10];
とかって宣言したらcは触れんよね?
コンパイラにはconstに初期値がないエラーを吐いて欲しいゾ
んでもう一点 class C{} C[] c=new C[10]; とした場合 個々のインスタンスは for(int i;i<c.length;++i) c[i]=new C; で割り当てるしかない? それともなんか工夫して書ける?
>>248 C[] c = new C[10];
foreach(ref e; c) e = new C;
250 :
デフォルトの名無しさん :2008/01/24(木) 14:51:30
なんか new C[10] で 個々のインスタンスは生成されないのって 違和感あるんだよなあ・・・ そんなことない?
勝手に生成される C++ は デフォルトコンストラクタしか呼べないから不便。 まあ boost::ptr_vector とかつかやええんやけども。
ポインタ用の領域を確保しただけなのに、勝手に実体まで作られてるほうが気持ち悪いと思う。
オブジェクトのインスタンスと配列が区別ついてないだけじゃねーか
>>255 C++ではclassとstructの違いがないから、
new C[10]はCの大きさの10倍の領域を確保して、
10回デフォルトコンストラクタが呼ばれるの。
一方、Dではclassは常に参照型だから、
new C[10]はポインタ10個分の領域しか確保しないの。
ok?
257 :
251 :2008/01/30(水) 02:25:37
>>252 なるほど確かに不便だ
言われてみればそれで困ったことあった気がする
if文の条件式で宣言した変数ってelse節から参照できないの?
できないよ ifブロックで使う必要ないんだったら条件式を逆転すれば? ifとelse両方で使いたいならその書き方するもんじゃないし
> ifとelse両方で使いたいならその書き方するもんじゃないし ifがelse節含め全域を覆っていると考えるか、 if節、else節、って感じで分かれてると考えるか、の違いだろな。 Dは後者だから、全域を覆いたいならそういうブロック文を書かないといけない、 ってところか。
C++ だと else から見れるから 単なる設計思想の違いじゃないかな。 特に検討したことがなかっただけ、なんてオチだったらおもろいが。
C++ではスコープというか生存期間がelse終了まで含まれるので class synchronizer { LockObject& lock; explicit synchronizer(LockObject& lock) : lock(lock) { lock.lock(); } ~synchronizer() { lock.unlock(); } operator bool() const { return false; } }; #define Synchronized(x) if (synchronizer ___locker = synchronizer(x)) ; else なんてのが出来たりした。(これが有用かはともかく)
265 :
デフォルトの名無しさん :2008/05/03(土) 22:42:49
てす
266 :
デフォルトの名無しさん :2008/07/10(木) 13:15:34
D1.0.3を使っています。 ある文字列に整数以外が入っているかどうかチェックしたいのですが 標準ライブラリで何かできますか? toIntを使うと整数以外が入っている場合には例外を投げてくれるのですが 動作が止まってしまうので何か解決策が無いかと考えています。 何か良い方法があればよろしくお願いします。
書きそびれましたが、現在はstd.regexpのfindを使って正規表現で振り分けをしています。 string reg = "12345"; std.regexp.find(reg, "[^(0-9)]"); // false reg = "1235b3323s"; std.regexp.find(ptn, "[^(0-9)]") // true というようにやっています。
済みません、解決しました std.stringにisNumericという関数が存在しました。
簡単な動作をするCUIのプログラムを作りました。 これを Linux と Windows の両方で動かしたいのですが、 main.exe: main.d header.d dmd main.d header.d とすると Windows では動くものの Linux では更新チェックが働いてくれません。 逆に main: main.d header.d dmd main.d header.d とすると今度は Windows で更新チェックがなされません。 Makefileをどのように工夫すれば両方で正常にコンパイルが終了するのでしょうか。 Windows では Digital Mars Make Version 5.05 を Linux では GNU Make 3.81 を使っています。
D言語で作っていたプログラムが WinXPなら動くのにVistaでは動かないのですが の仕様とかが変わっているのでしょうか?
Win32APIの使い方間違えてるだけだろ。どうせ
ようやくコンパイルまでたどり着いたけどファイルが複数あるときはどうすればいいんだろ、うまくいかない ---------------------------------- // hello.d import std.stdio; import hello2; int main(char[][] args){ int z = hello2(); writef(z); return 0; } -^-------------------------------- // hello2.d int hello2(){ return 0;} ---------------------------------- >C:\Dev\DSciTE\bud.exe -DCPATHC:\Dev\DSciTE\dmd\bin -IC:\Dev\DSciTE\lib -I.. -I..\.. -full -debug -g -unittest -w hello.d hello.d(5): Error: function expected before (), not module hello2 of type void >Exit code: 1
hello2の名前がかぶってるのが原因じゃね?
なんだいマルチかよ糞っ垂れ
書き込んでから過疎スレだと気づいたんだよ、初心者スレなのかどうかもよくわからないし。
なら答えつく前に移動したと書けよ
ある時の俺は過疎スレなのに気づいたけどマルチや移動が見苦しいから忘却することにした
これが匿名掲示板クオリティ
281 :
デフォルトの名無しさん :2008/12/09(火) 00:44:08
dsssでproxyの設定ってできますか?
そうかなあ
283 :
デフォルトの名無しさん :2009/09/02(水) 01:53:53
なるほど
284 :
デフォルトの名無しさん :2010/01/07(木) 17:03:32
これは駄目かも判らんね
285 :
デフォルトの名無しさん :2010/01/16(土) 13:14:38
駄目かも判らんですね
286 :
デフォルトの名無しさん :2010/02/15(月) 06:50:23
mada owarannyo
まるちやめれ
288 :
デフォルトの名無しさん :
2010/09/17(金) 23:20:48 でどうなった