1 名前:デフォルトの名無しさん [05/02/12 10:35:10 ] D言語一筋で10年ほど勉強しました。 D言語のことなら知らないこと意外ならすべてわかる。 だからなんでも聞いてくれ。 ただし、プライベートなことには答えられねーぞ
45 名前:デフォルトの名無しさん [05/03/05 00:53:26 ] boolなら答えは2つしかなさそうだが。
46 名前:32 [05/03/05 00:56:58 ] >>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 は答えを書く気が無いくせをしてしゃしゃり出やがる。
48 名前:32 [05/03/05 01:14:59 ] >>45 ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_getmessage.asp MSDNを見ると3種類の値を返すと書かれています. でも,これでかと思って int にしてみたけど関係ないみたいですね. やはり ... printf("0"); bRet = GetMessageA( &msg, cast(HWND)null, 0, 0 ); printf("1"); ... としたらコンソールには 0 しか表示されないです・・・.
49 名前:デフォルトの名無しさん mailto:sage [05/03/05 01:41:36 ] 念のために聞くけど、 CreateWindow関数呼ぶときにWS_VISIBLEをつける。 またはその後にShowWindow関数呼ぶ。 のどちらかを行ってる?
50 名前:32 [05/03/05 01:49:42 ] >>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); }
51 名前:49 mailto:sage [05/03/05 01:57:42 ] >>50 ん、RegisterClass関数をちゃんと呼んでる?
52 名前:32 [05/03/05 01:59:22 ] >>51 あ,ごめんなさい. ただの assert() だと思ってわざと消しちゃいました. ... wc.lpszMenuName = null; wc.cbClsExtra = wc.cbWndExtra = 0; assert(RegisterClass(&wc)); これが正しいものです.
53 名前:49 mailto:sage [05/03/05 02:06:32 ] コンパイラオプションに-releaseを加えるとassert文って消えるから、 RegisterClassはassert文の外に出したほうが良いよ。 でも、これが原因じゃないだろうし、分からんなぁ。
54 名前:32 [05/03/05 02:10:15 ] >>49 49さま,それが原因でした(^^; ありがとうございます.
55 名前:32 [05/03/05 02:15:55 ] てことは,コンパイラが型に厳しくなったために発生した windows.d のコンパイルエラーを取ったら,ちゃんと動いたと. そういうことのようです. お騒がせしました(^^;
56 名前:49 mailto:sage [05/03/05 02:19:15 ] 解決したなら良し。 assert文の罠は結構引っかりやすいから、要注意。 ......俺もSDL_Init関数で同じ罠にかかった経験あるからな。
57 名前:デフォルトの名無しさん mailto:sage [05/03/05 04:18:14 ] SDL組み込んだバイナリをデバッガで実行すると、 SDL内部で必ずアクセス違反が出るんだけど、仕様ですか?
58 名前:デフォルトの名無しさん mailto:sage [05/03/05 04:18:47 ] (普通に実行すると、ちゃんと動いている様には見える。)
59 名前:デフォルトの名無しさん mailto:sage [05/03/05 10:00:38 ] 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を発表しても面白かろうと思うんだけど、
62 名前:デフォルトの名無しさん mailto:sage [05/03/05 21:22:11 ] ? ガベコレ初心者ですか?
63 名前:デフォルトの名無しさん mailto:sage [05/03/05 22:54:27 ] 新しい言語なんか毎年腐るほど産まれているし。 ピュアなのは>61の脳内
64 名前:デフォルトの名無しさん mailto:sage [05/03/06 07:17:55 ] ピュアに新しいOSだってちょくちょく生まれてるぞ。
65 名前:デフォルトの名無しさん mailto:sage [05/03/06 08:19:59 ] D言語はピュアな心のモチヌシにしか見えません。
66 名前:デフォルトの名無しさん [05/03/06 15:56:21 ] 今や、ライブラリどころか、勝負はフレームワークやIDEの領域に映ってきてるから、 D言語は来ないだろ…。 言語仕様で勝負する時代はもう10年前に通り過ぎてる。
67 名前:デフォルトの名無しさん mailto:sage [05/03/06 20:28:42 ] 通り過ぎちゃいないだろ。 ただDが凡庸なだけで。
68 名前:デフォルトの名無しさん mailto:sage [05/03/06 20:35:37 ] VectorCの方が面白そうだよ
69 名前:デフォルトの名無しさん mailto:sage [05/03/07 14:55:59 ] それただのCコンパイラじゃん
70 名前:デフォルトの名無しさん mailto:sage [05/03/07 15:11:26 ] タダ!?フリー!?でも今はフリーなだけでは驚かない。
71 名前:デフォルトの名無しさん mailto:sage [05/03/15 16:02:27 ] スレスト隊長「俺の出番か?」 相談役「まだ早いのかもしれませんよ。」 スレスト隊長「・・・。まあよい。そのうち来るさ。」
72 名前:デフォルトの名無しさん mailto:sage [05/03/16 04:05:30 ] D言語 Part 6 pc5.2ch.net/test/read.cgi/tech/1109933426/
73 名前:デフォルトの名無しさん mailto:sage [05/03/16 23:17:39 ] スレスト隊長「↑そちらはまじめなDスレだ!」 隊員A「誘導したら駄目と言うことですか?」 スレスト隊長「そうだ。」
74 名前:デフォルトの名無しさん [2005/05/08(日) 20:08:53 ] ここウンコすれ
75 名前:デフォルトの名無しさん [2005/05/08(日) 20:11:29 ] p231.net220148094.tnc.ne.jp/ おkwwwおkwwwwwwwwwっうぇwwwwww うはっwwwwww うぇwwwうぇwwwwwwwwww wっっうぇ wwwっうぇwwwww w
76 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 19:03:46 ] この速度ならぬるぽ
77 名前:デフォルトの名無しさん mailto:sage [2005/07/28(木) 22:07:09 ] ガッ
78 名前:デフォルトの名無しさん [2005/08/01(月) 21:43:34 ] D言語スレDat落ちAge
79 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 21:48:08 ] うわ、マジで落ちてる。 油断してた。
80 名前:デフォルトの名無しさん mailto:sage [2005/08/01(月) 22:07:46 ] 超電磁スピンVの字正拳突きって隠しじゃないよね?
81 名前:デフォルトの名無しさん [2005/08/02(火) 23:29:59 ] 本スレがこっちより先に落ちるとかワロスw
82 名前:デフォルトの名無しさん [2005/08/02(火) 23:35:06 ] しょうがないからこっちを本スレにするか。 C, C++, Java, C# などのいいところを取って、さらにいろいろ付け足したような新しい言語。 ・Cライクな文法 ・実行形式はネイティブコード ・言語仕様のコンパクトさよりも利便性を追求 ・さまざまなOSで使える(Windows, Linux, MacOSX, FreeBSD) ・ガーベッジコレクション ・便利な動的配列や連想配列 ・契約による設計 ・標準ライブラリPhobos ・今のところv1.0未満につき、未実装・バグはまだだいぶある。 ・Win32APIを利用できるので、Win32アプリは作成可能。 DigitalMars D言語公式 www.digitalmars.com/d/ 日本語訳 www.kmonos.net/alang/d/ D Front End for GCC home.earthlink.net/~dvdfrdmn/d/ 前スレ D言語 Part 6 pc8.2ch.net/test/read.cgi/tech/1109933426/
83 名前:デフォルトの名無しさん mailto:sage [2005/08/02(火) 23:55:26 ] ttp://pc8.2ch.net/test/read.cgi/tech/1122912733/ これは?
84 名前:デフォルトの名無しさん mailto:sage [2005/08/03(水) 01:21:20 ] なんだ、立ったのか。
85 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 03:45:39 ] やねうらおさんのライブラリ開発が去年の2月15日でいきなり止まってるけど何かあったんんだろうか…
86 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 07:37:57 ] D言語に見切りをつけた。 か飽きた。
87 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 13:01:37 ] ガーン
88 名前:デフォルトの名無しさん mailto:sage [2005/08/08(月) 15:23:43 ] つーかあんなダサいライブラリいらない。
89 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 21:52:32 ] あの、プログラム初心者なんですけど クラスの宣言の意味がようわからないので教えてください a b = new a; で、どうしてクラス宣言するときnewしないとだめなんですか?? bっていうのはaの型へのポインタなんでしょうか・・・? 今までCしかやったことないのでよくわかりません、助けてください
90 名前:デフォルトの名無しさん mailto:sage [2005/09/25(日) 23:10:46 ] なぜnewしないと駄目なのかという理由は、classはヒープに確保するというのがD言語の設計だから。 ようするにbはaの型へのポインタ(と似たような)物というわけで、その理解で問題ない。
91 名前:デフォルトの名無しさん mailto:sage [2005/11/25(金) 23:45:35 ] std.processをimportしようとしたらエラーでるんだけど、バグ?? linuxなんだけど、どうすればできますか?
92 名前:デフォルトの名無しさん [2006/02/14(火) 06:46:36 ] Dの入門書ない?
93 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 16:32:28 ] >>92 今書けばバイブルになる
94 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 01:17:04 ] >>92 D言語パーフェクトガイド―Windows Linux FreeBSD対応 www.amazon.co.jp/exec/obidos/ASIN/4774122084/
95 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 01:23:53 ] そういえばそんなのあったなw
96 名前:デフォルトの名無しさん [2006/02/18(土) 23:06:20 ] あげ
97 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 09:21:22 ] サンプルソースがコンパイルできないです。 パスは通したが、未定義シンボルって言われますた
98 名前:デフォルトの名無しさん [2006/03/09(木) 00:04:14 ] phobosをコンパイルしていないからと思われ。
99 名前:デフォルトの名無しさん mailto:sage [2006/03/09(木) 04:18:09 ] >>94 もはや古いよ・・・
100 名前:http://www.vector.co.jp/soft/win95/util/se072729.html mailto:http://msdn2.microsoft.com/ja-jp/library/h2k70f3s.aspx [2006/03/18(土) 21:46:12 ] TextSS のWindowsXP(Professional)64bit化おながいします もしくは64bitにネイティブ対応したテキスト置換ソフトありますか? そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
101 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 16:36:49 ] リラテルってオブジェクトと似たようなもんなのか?
102 名前:デフォルトの名無しさん mailto:sage [2006/04/08(土) 22:17:29 ] りてらるりてらるるるるるるー♪
103 名前:デフォルトの名無しさん mailto:sage [2006/04/10(月) 14:18:59 ] いてらりゅ
104 名前:デフォルトの名無しさん [2006/07/18(火) 00:39:07 ] up
105 名前:デフォルトの名無しさん [2006/09/28(木) 18:31:13 ] ファイルの更新日時はどこでもらえばええですか。
106 名前:デフォルトの名無しさん [2006/09/28(木) 23:24:32 ] どこまでぐぐった?
107 名前:デフォルトの名無しさん mailto:sage [2006/09/29(金) 15:24:43 ] ディスプレイに顔がめり込むまで。
108 名前:デフォルトの名無しさん [2006/12/04(月) 18:13:55 ] はじめてD言語でプログラムしてみたけど linuxでSDLライブラリがコンパイルできない。
109 名前:108 mailto:sage [2006/12/15(金) 19:31:40 ] できた〜 リンクが間違ってただけだった
110 名前:デフォルトの名無しさん mailto:sage [2006/12/29(金) 14:13:57 ] Dって何でこんなにコンパイルが速いんですか?
111 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 12:09:55 ] >>110 びっくりするほど速いよね フンクソ思いプリプロセッサがないからじゃない。
112 名前:デフォルトの名無しさん mailto:sage [2007/01/11(木) 19:04:34 ] たしかに早いね〜。でもPascalほどじゃないな。
113 名前:デフォルトの名無しさん mailto:sage [2007/01/12(金) 01:28:07 ] パスカルってそんなに早くヤッてくれるんだΣ(´□`*)
114 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 11:08:23 ] コンパイル速度に関してはpascalが速い、っていうよりも Borland Pascalが速いんだよ。 まぁ、言語仕様的にコンパイル速度を上げやすいってのもあるかな。
115 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 11:13:32 ] プログラム書くときに人間が半分コンパイルしてるもんな
116 名前:デフォルトの名無しさん [2007/01/13(土) 12:37:25 ] ショボい最適化しかしていないのでは
117 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 13:07:33 ] 前しか参照しない仕様が効いてるんじゃね?>Pascal
118 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 13:30:19 ] 1. 言語仕様が高速化に向いている 2. 最適化がショボい 3. コンパイラのアルゴリズムが洗練されている この 3 つがコンパイラが高速になる条件だな。 2 はない方がいい条件だけど。
119 名前:デフォルトの名無しさん mailto:sage [2007/01/13(土) 13:51:58 ] 完成品じゃなくて作り途中のためなら それはそれでいいんじゃね
120 名前:108 mailto:sage [2007/02/15(木) 20:54:51 ] 今度はalsaでpcmが鳴った
121 名前:デフォルトの名無しさん mailto:sage [2007/02/21(水) 16:41:27 ] DMDはコンパイルが爆速なのに、 GDCは普通のC++のコンパイラ並の速度なのはなんでだぜ?
122 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 03:30:47 ] >>121 バックエンドがGCCだから 抽象化のためにかなり速度を犠牲にしている
123 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:03:39 ] コンパイル速度を上げられるような言語設計にこだわってるのに、 何か瀬がないな。
124 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 18:13:25 ] まぁ、本家が力を示せてるから、とりあえずそれで面目は立ってるよ。 それに細かいことを言えば、「コンパイル速度を上げられるような」言語設計というよりは 「コンパイラを比較的楽に作れる」言語設計を目指してるんだと思うし、 そういう風に考えれば、まぁ遅くても「話が違うだろ!」とまでは行かないから安心安心と。 いや、格好いいことじゃないけどね、遅いのは。
125 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 00:47:29 ] コンパイル速度なんて開発の進捗を遅らせるようなもんでもないしね
126 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 23:40:35 ] ソースが多くなってくると結構重要。
127 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:56:44 ] そうっすか。
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言語で作ったのをコンピャイルして実行ファイルにしたあと、それをダブルクリックしても一瞬で終了しちゃいます。何とかしてシステムの動きを止められないでしょーか? こんなおばかな僕に誰か救いの手をプリーズ。
131 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:05:34 ] >>130 {getchar(); fflush(stdin);} {kbhit();} などなどの方法がある。
132 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:06:12 ] kbhit();はconio.h(console input/output)をインクルードしてね
133 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:11:48 ] 荒らしに反応するなよ。
134 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:49:32 ] conioってそういう意味だったのか、こにょやろう。
135 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:02:16 ] >>128 std.sreamのreadLineとかってのは、 Streamクラスのメンバ関数なので、 その(派生)クラスのオブジェクトをまず作らないといけない。 使用例はここにあった。 f17.aaa.livedoor.jp/~labamba/?std.stream#content_1_27 で、標準入出力で遊ぶならstd.cstreamの方を使うといいよ。 buf = din.readLine(); とかいう感じで使える。
136 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 23:24:55 ] >>135 ぬかった!! dinだったのか…なるほどでございます。 cstreamを使えばmemorystreamをしなくてもdin.うんたらで出力できるんですね。 これは何というか、標準出力って概念を感じさせない使い方でこれまたエレガント…うっとり
137 名前:デフォルトの名無しさん mailto:sage [2007/03/24(土) 00:22:14 ] CのpopenみたいなのをDでやるためにはどうしたらいいですか?
138 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 19:11:11 ] Cにpopenなどというものはない。 というか、popenつかえばいいのでは。
139 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 10:49:47 ] >>139 i[i.length] とか明らかにおかしいし、そもそも素数の始まりは 2 じゃろう
141 名前:デフォルトの名無しさん mailto:sage [2007/04/07(土) 11:33:43 ] >>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ファイルも指定したのですが、リンクがうまくいかないみたいです。 なんか根本的な勘違いをしているような気がします。 こういう場合どうすればいいのでしょうか。
143 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 06:45:25 ] >>6 日本語でおk
144 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 18:19:20 ] 本スレのほうにまるちっち
146 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 02:01:19 ] >>145 むしゃくしゃして まるちっち作ってやった 反省してない (((()))))))))))) 伐, ,/リリ l2] 2] 3 ( ε ノ 「 ll二ll l (_l ., (_) (__(__l
147 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 02:41:22 ] マルチってなに〜?
148 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 04:10:54 ] 2chにおけるマルチの用法とは「俺は知ってるんだぜ」と 専用ブラウザを駆使し全スレヲッチ/5秒でこなす重度の2ch依存者が 公共の利益を代表しているかの様に錯覚し声高につまらない事を指摘する行為 忙しい朝っぱらに難癖付けて来るゴミ回収場常駐のキチガイババアと同種です。
149 名前:デフォルトの名無しさん mailto:sage [2007/05/10(木) 16:33:40 ] あらやだ、自爆してるざます。
150 名前:デフォルトの名無しさん [2007/05/11(金) 02:40:24 ] 構造体で struct foo { int x = 0; } foo mat[100]; って使うときに配列の構造体の変数xすべてに代入したいとき mat.x = 1; とかやるとプロパティじゃねぇみたいな感じで怒られるから 構造体の初期値で代入したり mat[i].x = 1ってやってループ回して代入してるんですが 何かもっと便利な方法って無いですか?
151 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 02:50:07 ] foreach(ref s; mat) s.x = 1;
152 名前:デフォルトの名無しさん [2007/05/11(金) 03:09:35 ] 型タプルってテンプレートの引数に渡せない?
153 名前:デフォルトの名無しさん mailto:sage [2007/05/11(金) 07:27:00 ] memset(&mat[0], 1, 100);
154 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 00:24:16 ] >>151 ,153 150です 便利な方法を教えていただきありがとうございました^^
155 名前:デフォルトの名無しさん [2007/05/22(火) 00:33:27 ] DMDのコンパイラで警告は表示するけどそれを無視してコンパイルする設定 にするにはどうすればいいですか?
156 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:43:56 ] Dは方針として警告というものはないんじゃなかったっけ
157 名前:デフォルトの名無しさん mailto:sage [2007/05/22(火) 00:45:31 ] あるがな。 dmd -w
158 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 00:30:43 ] たしかにdmd -wだと警告でコンパイル止まるな
159 名前:デフォルトの名無しさん mailto:sage [2007/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 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:46:19 ] 30 になるけど?
161 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:54:31 ] -debugモードだと3、-releaseモードだと362882156になった -debug -Oで30、-release -Oで362882156
162 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:55:36 ] うお。オプションで変わるのか。
163 名前:デフォルトの名無しさん mailto:sage [2007/05/24(木) 19:57:49 ] -O3 だとちゃんとなってるのに、 -O だと変になるな。
164 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:04:31 ] int f() { return x * 3; } ここのxがインスタンス不明になるからじゃないの?
165 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:08:49 ] ああ、f が内部関数になってたのか。 これだと this が伝播しないってことか?
166 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:15:35 ] そんなことはないだろう。 b = new B({ return x * 3; }); もおかしな挙動をするし。
167 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:19:25 ] まあ、バグだな。
168 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:53:21 ] b = new B({ return x * 3; }); これだけの情報でどうやって x が A の面罵だって分かるのかな?
169 名前:デフォルトの名無しさん mailto:sage [2007/05/25(金) 03:56:16 ] ああ、 this が電波するのか。 そうなってくれないと困る罠。 まあ、バグだな。
170 名前:デフォルトの名無しさん mailto:sage [2007/05/29(火) 22:03:13 ] D言語って一瞬も流行らなかったな
171 名前:デフォルトの名無しさん [2007/05/29(火) 22:24:31 ] >>170 なに言ってんの? 超流行まくりだよ、俺の頭の中では。
172 名前:デフォルトの名無しさん mailto:sage [2007/05/31(木) 13:36:10 ] まだ仕様変更やコンパイラのバグ多いし これからだろD言語は ・・・だよな?
173 名前:デフォルトの名無しさん [2007/06/02(土) 17:43:29 ] 動的配列の初期化ってまだ実装されてないですよね? 静的配列に動的配列渡すのもまだ未実装なんでしょうか?
174 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 17:50:26 ] void main() { int[] a = [1, 2, 3]; int[3] b = a; } こういうこと?言わんとしていることがちょっとよくわからん。
175 名前:173 mailto:sage [2007/06/02(土) 18:08:23 ] 言葉が足りずすいません 書いてくださったとおりの意味です
176 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 18:17:25 ] どの言語もLISPに近づこうと必死だな
177 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 20:45:59 ] Lispは神域に達してるからな。 人が神に近づこうとするのは自然だ。
178 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 23:49:29 ] Visual D マダァ?(・∀・ )っ/凵⌒☆チンチン
179 名前:デフォルトの名無しさん mailto:sage [2007/06/03(日) 00:20:50 ] それよりまずはTangoとDFLに期待
180 名前:デフォルトの名無しさん [2007/06/10(日) 02:25:38 ] D言語で行列積とか計算するのに 標準的なライブラリってありますか? 既出でしたらすいません
181 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 03:19:36 ] >>180 漏れは聞いたことないな つか他の言語でも百家争鳴なかんじじゃね? テンプレートのライブラリも今のところ貧弱っぽいし 他の言語で書かれてあるのを利用するかポーティングするか もしくは自分でつくるかしたほうがいいかも
182 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 03:36:07 ] CLAPACK を呼ぶとか。
183 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 02:17:50 ] POLICEを呼ぶとか
184 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 00:35:55 ] 俺を呼ぶとか。
185 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 05:36:33 ] 嵐を呼ぶとか
186 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:56:03 ] ちょ おまいらwwwww ところでdmd 1.x系統で何事もなく動いてたプログラムを dmd 2.0でコンパイルしたら実行時に Error: Stack Overflow って出て止まるんだけどこれはプログラムに難点があると見るべき?
187 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:03:23 ] コンパイラがスタックオーバーフローするなら、コンパイラの不具合くさいが、 実際にソース見てみないことにはわからんな。
188 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:19:59 ] >>187 レスサンクス ソース眺めてたら原因の箇所がつかめたっぽいので ちょっと調べてみるよ
189 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 02:47:37 ] dmd 1.x系と2.x系ってお手軽に切り替えれたりする?
190 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 05:44:24 ] D1.xとD2.xのソースコードに互換性はない。
191 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 11:28:07 ] うはwwwwwwおkwwwwwww コンパイラはオプションで切り替えれたりしない?
192 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 17:02:55 ] dmd -v1
193 名前:デフォルトの名無しさん mailto:sage [2007/06/29(金) 19:55:55 ] それやるとdmd 1.x系のでコンパイル通ってたのでも通らなかったりする
194 名前:デフォルトの名無しさん [2007/07/07(土) 01:23:23 ] D言語で配列aの要素全体を5で割りたいとかかけたいときって a * 5 a / 5 とかいうやり方が許されていないのは配列演算がまだ実装されてないから?
195 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 01:35:07 ] yes.
196 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:22:50 ] >>195 thanks.
197 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:33:25 ] FORTRAN 並みの配列演算が行えるといいな。
198 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:34:08 ] 間違った。FORTRAN じゃなくて Fortran だ。90 以降。
199 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:12:44 ] 別に間違いというほどのことじゃないだろ どのみち今の段階じゃバグ多すぎでとても数値計算に使う気になれナス
200 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:28:26 ] まぁそれでも将来的にはFortran並みの実装を期待
201 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:33:08 ] a[:] = b[:] * 2 + c[:]; とか。
202 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 04:04:18 ] 標準関数にmatmulも入って欲しいな 配列演算じゃないけど個人的には**も使いたい
203 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 04:20:42 ] そういえばLatex→Fortranと入ってきた俺はC言語にいたって pow関数を使わなきゃいけないと知ったときやたら面倒だなと思った
204 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 09:36:57 ] powってコストが高そうなイメージがあるんで掛け算で書いてたなあ
205 名前:デフォルトの名無しさん [2007/08/10(金) 01:19:29 ] age!()
206 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 03:02:37 ] こっちはずいぶん過疎ってるなぁ・・・・