D言語なら俺に聞け

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
D言語一筋で10年ほど勉強しました。
D言語のことなら知らないこと意外ならすべてわかる。
だからなんでも聞いてくれ。
ただし、プライベートなことには答えられねーぞ
2デフォルトの名無しさん:05/02/12 10:46:16
好きな色はなんですか?
3デフォルトの名無しさん:05/02/12 11:16:53
そちらは晴れですか?
4デフォルトの名無しさん:05/02/12 12:33:40
きのう牛丼食った?
5デフォルトの名無しさん:05/02/12 13:55:41
>>4
売り切れでしたから!残念!!
6デフォルトの名無しさん:05/02/12 14:36:18
>>1
漏れもDのことなら知らないこと以外なんでもわかるな。
>>4
車で突っ込んだり、売り切れだって切れたり、すでに発症してる人たちもいるようで・・・
7デフォルトの名無しさん:05/02/12 16:01:21
>>1
D言語ができたのはいつですか?
8デフォルトの名無しさん:05/02/12 20:11:21
9デフォルトの名無しさん:05/02/12 20:21:06
注意↑グロ画像
10デフォルトの名無しさん:05/02/12 20:23:26
>>8 ワロタ
11デフォルトの名無しさん:05/02/12 20:37:15
>>8
やべぇ…
12デフォルトの名無しさん:05/02/12 20:51:09
>>8 キモイ
13デフォルトの名無しさん:05/02/12 23:40:23
>>8-12
自演乙


時に連想配列にnull代入すると初期化されるんだが、
仕組み教えてくれ。
14デフォルメの名無しさん:05/02/22 14:06:49
D言語のコンパイラはデフォルトで全てのAPI使えねえから
俺には無理だというところがむかつくぜ。
>>1は10年間は嘘だろう!さすがに。
そんな嘘吐き>>1を叩く!!徹底的にな!!
15デフォルトの名無しさん:05/02/22 19:26:51
16デフォルトの名無しさん:05/02/22 19:44:20
↑エロ
17デフォルトの名無しさん:05/02/22 20:40:05
>>16
エロは19話。
18デフォルトの名無しさん:05/02/22 21:54:55
19デフォルトの名無しさん:05/02/22 23:13:41
>>18それはhtmlファイルだろ。
20デフォルトの名無しさん:05/02/22 23:14:34
>>18
画像じゃないね。
21デフォルトの名無しさん:05/02/23 11:09:38
>>18
トロイの木馬を検出しますた
22デフォルトの名無しさん:05/02/23 21:55:21
ワクチンソフトが必須だと思った瞬間
23デフォルトの名無しさん:05/02/23 21:58:14
24デフォルトの名無しさん:05/02/23 22:27:21
>>18-22
61.194.13.120 ってどこ?
25デフォルトの名無しさん:05/02/23 22:51:54
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

26デフォルトの名無しさん:05/02/24 00:16:45
>>25
http://www.tiduru.sytes.net/img-box/img20040727015957.jpg
の中にそのアドレスいっぱい書かれてるね
27デフォルトの名無しさん:05/02/24 00:33:03
失せろ
28デフォルトの名無しさん:05/03/04 12:47:43
ヘイ!ユー!!
29デフォルトの名無しさん:05/03/04 23:30:26
1のたこやろう!!
30デフォルトの名無しさん:05/03/04 23:34:53
>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 あるじゃんという返事をもらったけど,
どういうことか教えてもらえないですか?
自分で変換しろってこと?
ってことは,ないってことでは・・・.
34デフォルトの名無しさん:05/03/05 00:07:28
ウメ
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をおしえてと言ってたよ。
40デフォルトの名無しさん:05/03/05 00:33:21
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);
}
}
}
42デフォルトの名無しさん:05/03/05 00:50:04
GetMessageAはAが必要なら
DispatchMessageもA付ける必要があるんじゃないか?
43デフォルトの名無しさん:05/03/05 00:51:39
windows.dつかってるならその逆とか
GetMessageAのAを外してみるとか?
44デフォルトの名無しさん:05/03/05 00:51:46
>>42
はいはい知らん子は黙ってようねヨチヨチ
45デフォルトの名無しさん:05/03/05 00:53:26
boolなら答えは2つしかなさそうだが。
4632: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は答えを書く気が無いくせをしてしゃしゃり出やがる。
4832: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デフォルトの名無しさん:05/03/05 01:41:36
念のために聞くけど、
CreateWindow関数呼ぶときにWS_VISIBLEをつける。
またはその後にShowWindow関数呼ぶ。
のどちらかを行ってる?
5032: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);
}
5149:05/03/05 01:57:42
>>50
ん、RegisterClass関数をちゃんと呼んでる?
5232:05/03/05 01:59:22
>>51
あ,ごめんなさい.
ただの assert() だと思ってわざと消しちゃいました.

...
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;
assert(RegisterClass(&wc));

これが正しいものです.
5349:05/03/05 02:06:32
コンパイラオプションに-releaseを加えるとassert文って消えるから、
RegisterClassはassert文の外に出したほうが良いよ。
でも、これが原因じゃないだろうし、分からんなぁ。


5432:05/03/05 02:10:15
>>49
49さま,それが原因でした(^^;
ありがとうございます.
5532:05/03/05 02:15:55
てことは,コンパイラが型に厳しくなったために発生した
windows.d のコンパイルエラーを取ったら,ちゃんと動いたと.
そういうことのようです.
お騒がせしました(^^;
5649:05/03/05 02:19:15
解決したなら良し。
assert文の罠は結構引っかりやすいから、要注意。
......俺もSDL_Init関数で同じ罠にかかった経験あるからな。
57デフォルトの名無しさん:05/03/05 04:18:14
SDL組み込んだバイナリをデバッガで実行すると、
SDL内部で必ずアクセス違反が出るんだけど、仕様ですか?
58デフォルトの名無しさん:05/03/05 04:18:47
(普通に実行すると、ちゃんと動いている様には見える。)
59デフォルトの名無しさん: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デフォルトの名無しさん:05/03/05 21:22:11

ガベコレ初心者ですか?
63デフォルトの名無しさん:05/03/05 22:54:27
新しい言語なんか毎年腐るほど産まれているし。

ピュアなのは>61の脳内
64デフォルトの名無しさん:05/03/06 07:17:55
ピュアに新しいOSだってちょくちょく生まれてるぞ。
65デフォルトの名無しさん:05/03/06 08:19:59
D言語はピュアな心のモチヌシにしか見えません。
66デフォルトの名無しさん:05/03/06 15:56:21
今や、ライブラリどころか、勝負はフレームワークやIDEの領域に映ってきてるから、
D言語は来ないだろ…。
言語仕様で勝負する時代はもう10年前に通り過ぎてる。
67デフォルトの名無しさん:05/03/06 20:28:42
通り過ぎちゃいないだろ。
ただDが凡庸なだけで。
68デフォルトの名無しさん:05/03/06 20:35:37
VectorCの方が面白そうだよ
69デフォルトの名無しさん:05/03/07 14:55:59
それただのCコンパイラじゃん
70デフォルトの名無しさん:05/03/07 15:11:26
タダ!?フリー!?でも今はフリーなだけでは驚かない。
71デフォルトの名無しさん:05/03/15 16:02:27
スレスト隊長「俺の出番か?」
相談役「まだ早いのかもしれませんよ。」
スレスト隊長「・・・。まあよい。そのうち来るさ。」
72デフォルトの名無しさん:05/03/16 04:05:30
73デフォルトの名無しさん:05/03/16 23:17:39
スレスト隊長「↑そちらはまじめなDスレだ!」
隊員A「誘導したら駄目と言うことですか?」
スレスト隊長「そうだ。」
74デフォルトの名無しさん:2005/05/08(日) 20:08:53
ここウンコすれ
75デフォルトの名無しさん:2005/05/08(日) 20:11:29
http://p231.net220148094.tnc.ne.jp/
おkwwwおkwwwwwwwwwっうぇwwwwww
うはっwwwwww

うぇwwwうぇwwwwwwwwww
wっっうぇ
wwwっうぇwwwww


76デフォルトの名無しさん:2005/07/28(木) 19:03:46
この速度ならぬるぽ
77デフォルトの名無しさん:2005/07/28(木) 22:07:09
ガッ
78デフォルトの名無しさん:2005/08/01(月) 21:43:34
D言語スレDat落ちAge
79デフォルトの名無しさん:2005/08/01(月) 21:48:08
うわ、マジで落ちてる。
油断してた。
80デフォルトの名無しさん: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言語公式
http://www.digitalmars.com/d/
日本語訳
http://www.kmonos.net/alang/d/
D Front End for GCC
http://home.earthlink.net/~dvdfrdmn/d/

前スレ
D言語 Part 6
http://pc8.2ch.net/test/read.cgi/tech/1109933426/
83デフォルトの名無しさん:2005/08/02(火) 23:55:26
84デフォルトの名無しさん:2005/08/03(水) 01:21:20
なんだ、立ったのか。
85デフォルトの名無しさん:2005/08/08(月) 03:45:39
やねうらおさんのライブラリ開発が去年の2月15日でいきなり止まってるけど何かあったんんだろうか…
86デフォルトの名無しさん:2005/08/08(月) 07:37:57
D言語に見切りをつけた。
か飽きた。
87デフォルトの名無しさん:2005/08/08(月) 13:01:37
ガーン
88デフォルトの名無しさん:2005/08/08(月) 15:23:43
つーかあんなダサいライブラリいらない。
89デフォルトの名無しさん:2005/09/25(日) 21:52:32
あの、プログラム初心者なんですけど
クラスの宣言の意味がようわからないので教えてください
a b = new a;
で、どうしてクラス宣言するときnewしないとだめなんですか??
bっていうのはaの型へのポインタなんでしょうか・・・?
今までCしかやったことないのでよくわかりません、助けてください
90デフォルトの名無しさん:2005/09/25(日) 23:10:46
なぜnewしないと駄目なのかという理由は、classはヒープに確保するというのがD言語の設計だから。
ようするにbはaの型へのポインタ(と似たような)物というわけで、その理解で問題ない。
91デフォルトの名無しさん:2005/11/25(金) 23:45:35
std.processをimportしようとしたらエラーでるんだけど、バグ??
linuxなんだけど、どうすればできますか?
92デフォルトの名無しさん:2006/02/14(火) 06:46:36
Dの入門書ない?
93デフォルトの名無しさん:2006/02/14(火) 16:32:28
>>92
今書けばバイブルになる
94デフォルトの名無しさん:2006/02/15(水) 01:17:04
>>92
D言語パーフェクトガイド―Windows Linux FreeBSD対応
http://www.amazon.co.jp/exec/obidos/ASIN/4774122084/

95デフォルトの名無しさん:2006/02/15(水) 01:23:53
そういえばそんなのあったなw
96デフォルトの名無しさん:2006/02/18(土) 23:06:20
あげ
97デフォルトの名無しさん:2006/02/28(火) 09:21:22
サンプルソースがコンパイルできないです。

パスは通したが、未定義シンボルって言われますた
98デフォルトの名無しさん:2006/03/09(木) 00:04:14
phobosをコンパイルしていないからと思われ。
99デフォルトの名無しさん:2006/03/09(木) 04:18:09
>>94
もはや古いよ・・・
TextSS のWindowsXP(Professional)64bit化おながいします

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

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



101デフォルトの名無しさん:2006/04/08(土) 16:36:49
リラテルってオブジェクトと似たようなもんなのか?
102デフォルトの名無しさん:2006/04/08(土) 22:17:29
りてらるりてらるるるるるるー♪
103デフォルトの名無しさん: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デフォルトの名無しさん:2006/09/29(金) 15:24:43
ディスプレイに顔がめり込むまで。
108デフォルトの名無しさん:2006/12/04(月) 18:13:55
はじめてD言語でプログラムしてみたけど
linuxでSDLライブラリがコンパイルできない。
109108:2006/12/15(金) 19:31:40
できた〜 リンクが間違ってただけだった
110デフォルトの名無しさん:2006/12/29(金) 14:13:57
Dって何でこんなにコンパイルが速いんですか?
111デフォルトの名無しさん:2007/01/11(木) 12:09:55
>>110
びっくりするほど速いよね
フンクソ思いプリプロセッサがないからじゃない。
112デフォルトの名無しさん:2007/01/11(木) 19:04:34
たしかに早いね〜。でもPascalほどじゃないな。
113デフォルトの名無しさん:2007/01/12(金) 01:28:07
パスカルってそんなに早くヤッてくれるんだΣ(´□`*)
114デフォルトの名無しさん:2007/01/13(土) 11:08:23
コンパイル速度に関してはpascalが速い、っていうよりも
Borland Pascalが速いんだよ。

まぁ、言語仕様的にコンパイル速度を上げやすいってのもあるかな。
115デフォルトの名無しさん:2007/01/13(土) 11:13:32
プログラム書くときに人間が半分コンパイルしてるもんな
116デフォルトの名無しさん:2007/01/13(土) 12:37:25
ショボい最適化しかしていないのでは
117デフォルトの名無しさん:2007/01/13(土) 13:07:33
前しか参照しない仕様が効いてるんじゃね?>Pascal
118デフォルトの名無しさん:2007/01/13(土) 13:30:19
1. 言語仕様が高速化に向いている
2. 最適化がショボい
3. コンパイラのアルゴリズムが洗練されている

この 3 つがコンパイラが高速になる条件だな。
2 はない方がいい条件だけど。
119デフォルトの名無しさん:2007/01/13(土) 13:51:58
完成品じゃなくて作り途中のためなら
それはそれでいいんじゃね
120108:2007/02/15(木) 20:54:51
今度はalsaでpcmが鳴った
121デフォルトの名無しさん:2007/02/21(水) 16:41:27
DMDはコンパイルが爆速なのに、
GDCは普通のC++のコンパイラ並の速度なのはなんでだぜ?
122デフォルトの名無しさん:2007/02/27(火) 03:30:47
>>121
バックエンドがGCCだから
抽象化のためにかなり速度を犠牲にしている
123デフォルトの名無しさん:2007/02/27(火) 18:03:39
コンパイル速度を上げられるような言語設計にこだわってるのに、
何か瀬がないな。
124デフォルトの名無しさん:2007/02/27(火) 18:13:25
まぁ、本家が力を示せてるから、とりあえずそれで面目は立ってるよ。

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

いや、格好いいことじゃないけどね、遅いのは。
125デフォルトの名無しさん:2007/02/28(水) 00:47:29
コンパイル速度なんて開発の進捗を遅らせるようなもんでもないしね
126デフォルトの名無しさん:2007/02/28(水) 23:40:35
ソースが多くなってくると結構重要。
127デフォルトの名無しさん: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\;
です
130C言語:2007/03/19(月) 14:08:57
 ◆ピピー◆
ここでひとつ質問。
C言語で作ったのをコンピャイルして実行ファイルにしたあと、それをダブルクリックしても一瞬で終了しちゃいます。何とかしてシステムの動きを止められないでしょーか?
こんなおばかな僕に誰か救いの手をプリーズ。
131デフォルトの名無しさん:2007/03/19(月) 22:05:34
>>130
{getchar();
fflush(stdin);}
{kbhit();}
などなどの方法がある。
132デフォルトの名無しさん:2007/03/19(月) 22:06:12
kbhit();はconio.h(console input/output)をインクルードしてね
133デフォルトの名無しさん:2007/03/19(月) 22:11:48
荒らしに反応するなよ。
134デフォルトの名無しさん:2007/03/20(火) 23:49:32
conioってそういう意味だったのか、こにょやろう。
135デフォルトの名無しさん:2007/03/21(水) 03:02:16
>>128
std.sreamのreadLineとかってのは、
Streamクラスのメンバ関数なので、
その(派生)クラスのオブジェクトをまず作らないといけない。
使用例はここにあった。
http://f17.aaa.livedoor.jp/~labamba/?std.stream#content_1_27

で、標準入出力で遊ぶならstd.cstreamの方を使うといいよ。
buf = din.readLine(); とかいう感じで使える。
136デフォルトの名無しさん:2007/03/22(木) 23:24:55
>>135
ぬかった!!
dinだったのか…なるほどでございます。

cstreamを使えばmemorystreamをしなくてもdin.うんたらで出力できるんですね。
これは何というか、標準出力って概念を感じさせない使い方でこれまたエレガント…うっとり
137デフォルトの名無しさん:2007/03/24(土) 00:22:14
CのpopenみたいなのをDでやるためにはどうしたらいいですか?
138デフォルトの名無しさん:2007/03/25(日) 19:11:11
Cにpopenなどというものはない。
というか、popenつかえばいいのでは。
139デフォルトの名無しさん: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デフォルトの名無しさん:2007/04/07(土) 10:49:47
>>139
i[i.length] とか明らかにおかしいし、そもそも素数の始まりは 2 じゃろう
141デフォルトの名無しさん: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デフォルトの名無しさん:2007/04/10(火) 06:45:25
>>6
日本語でおk
144デフォルトの名無しさん: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デフォルトの名無しさん:2007/04/13(金) 18:19:20
本スレのほうにまるちっち
146デフォルトの名無しさん:2007/04/14(土) 02:01:19
>>145
むしゃくしゃして
まるちっち作ってやった
反省してない

(((())))))))))))
  伐, ,/リリ
   l2] 2] 3
  (  ε  ノ
  「 ll二ll l
  (_l ., (_)
   (__(__l
147デフォルトの名無しさん:2007/05/10(木) 02:41:22
マルチってなに〜?
148デフォルトの名無しさん:2007/05/10(木) 04:10:54
2chにおけるマルチの用法とは「俺は知ってるんだぜ」と
専用ブラウザを駆使し全スレヲッチ/5秒でこなす重度の2ch依存者が
公共の利益を代表しているかの様に錯覚し声高につまらない事を指摘する行為

忙しい朝っぱらに難癖付けて来るゴミ回収場常駐のキチガイババアと同種です。
149デフォルトの名無しさん: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デフォルトの名無しさん:2007/05/11(金) 02:50:07
foreach(ref s; mat) s.x = 1;
152デフォルトの名無しさん:2007/05/11(金) 03:09:35
型タプルってテンプレートの引数に渡せない?
153デフォルトの名無しさん:2007/05/11(金) 07:27:00
memset(&mat[0], 1, 100);
154デフォルトの名無しさん:2007/05/12(土) 00:24:16
>>151,153
150です 便利な方法を教えていただきありがとうございました^^
155デフォルトの名無しさん:2007/05/22(火) 00:33:27
DMDのコンパイラで警告は表示するけどそれを無視してコンパイルする設定
にするにはどうすればいいですか?
156デフォルトの名無しさん:2007/05/22(火) 00:43:56
Dは方針として警告というものはないんじゃなかったっけ
157デフォルトの名無しさん:2007/05/22(火) 00:45:31
あるがな。
dmd -w
158デフォルトの名無しさん:2007/05/23(水) 00:30:43
たしかにdmd -wだと警告でコンパイル止まるな
159デフォルトの名無しさん: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デフォルトの名無しさん:2007/05/24(木) 19:46:19
30 になるけど?
161デフォルトの名無しさん:2007/05/24(木) 19:54:31
-debugモードだと3、-releaseモードだと362882156になった
-debug -Oで30、-release -Oで362882156
162デフォルトの名無しさん:2007/05/24(木) 19:55:36
うお。オプションで変わるのか。
163デフォルトの名無しさん:2007/05/24(木) 19:57:49
-O3 だとちゃんとなってるのに、
-O だと変になるな。
164デフォルトの名無しさん:2007/05/25(金) 03:04:31
int f() { return x * 3; }
ここのxがインスタンス不明になるからじゃないの?
165デフォルトの名無しさん:2007/05/25(金) 03:08:49
ああ、f が内部関数になってたのか。
これだと this が伝播しないってことか?
166デフォルトの名無しさん:2007/05/25(金) 03:15:35
そんなことはないだろう。

b = new B({ return x * 3; });
もおかしな挙動をするし。
167デフォルトの名無しさん:2007/05/25(金) 03:19:25
まあ、バグだな。
168デフォルトの名無しさん:2007/05/25(金) 03:53:21
b = new B({ return x * 3; });
これだけの情報でどうやって x が A の面罵だって分かるのかな?
169デフォルトの名無しさん:2007/05/25(金) 03:56:16
ああ、 this が電波するのか。
そうなってくれないと困る罠。
まあ、バグだな。
170デフォルトの名無しさん:2007/05/29(火) 22:03:13
D言語って一瞬も流行らなかったな
171デフォルトの名無しさん:2007/05/29(火) 22:24:31
>>170
なに言ってんの? 超流行まくりだよ、俺の頭の中では。
172デフォルトの名無しさん:2007/05/31(木) 13:36:10
まだ仕様変更やコンパイラのバグ多いし
これからだろD言語は


・・・だよな?
173デフォルトの名無しさん:2007/06/02(土) 17:43:29
動的配列の初期化ってまだ実装されてないですよね?
静的配列に動的配列渡すのもまだ未実装なんでしょうか?
174デフォルトの名無しさん:2007/06/02(土) 17:50:26
void main() {
int[] a = [1, 2, 3];
int[3] b = a;
}

こういうこと?言わんとしていることがちょっとよくわからん。
175173:2007/06/02(土) 18:08:23
言葉が足りずすいません
書いてくださったとおりの意味です
176デフォルトの名無しさん:2007/06/02(土) 18:17:25
どの言語もLISPに近づこうと必死だな
177デフォルトの名無しさん:2007/06/02(土) 20:45:59
Lispは神域に達してるからな。
人が神に近づこうとするのは自然だ。
178デフォルトの名無しさん:2007/06/02(土) 23:49:29
Visual D
マダァ?(・∀・ )っ/凵⌒☆チンチン
179デフォルトの名無しさん:2007/06/03(日) 00:20:50
それよりまずはTangoとDFLに期待
180デフォルトの名無しさん:2007/06/10(日) 02:25:38
D言語で行列積とか計算するのに
標準的なライブラリってありますか?

既出でしたらすいません
181デフォルトの名無しさん:2007/06/24(日) 03:19:36
>>180
漏れは聞いたことないな
つか他の言語でも百家争鳴なかんじじゃね?
テンプレートのライブラリも今のところ貧弱っぽいし
他の言語で書かれてあるのを利用するかポーティングするか
もしくは自分でつくるかしたほうがいいかも
182デフォルトの名無しさん:2007/06/24(日) 03:36:07
CLAPACK を呼ぶとか。
183デフォルトの名無しさん:2007/06/25(月) 02:17:50
POLICEを呼ぶとか
184デフォルトの名無しさん:2007/06/26(火) 00:35:55
俺を呼ぶとか。
185デフォルトの名無しさん:2007/06/26(火) 05:36:33
嵐を呼ぶとか
186デフォルトの名無しさん:2007/06/26(火) 17:56:03
ちょ おまいらwwwww

ところでdmd 1.x系統で何事もなく動いてたプログラムを
dmd 2.0でコンパイルしたら実行時に
Error: Stack Overflow
って出て止まるんだけどこれはプログラムに難点があると見るべき?
187デフォルトの名無しさん:2007/06/26(火) 18:03:23
コンパイラがスタックオーバーフローするなら、コンパイラの不具合くさいが、
実際にソース見てみないことにはわからんな。
188デフォルトの名無しさん:2007/06/26(火) 18:19:59
>>187
レスサンクス
ソース眺めてたら原因の箇所がつかめたっぽいので
ちょっと調べてみるよ
189デフォルトの名無しさん:2007/06/29(金) 02:47:37
dmd 1.x系と2.x系ってお手軽に切り替えれたりする?
190デフォルトの名無しさん:2007/06/29(金) 05:44:24
D1.xとD2.xのソースコードに互換性はない。
191デフォルトの名無しさん:2007/06/29(金) 11:28:07
うはwwwwwwおkwwwwwww
コンパイラはオプションで切り替えれたりしない?
192デフォルトの名無しさん:2007/06/29(金) 17:02:55
dmd -v1
193デフォルトの名無しさん:2007/06/29(金) 19:55:55
それやるとdmd 1.x系のでコンパイル通ってたのでも通らなかったりする
194デフォルトの名無しさん:2007/07/07(土) 01:23:23
D言語で配列aの要素全体を5で割りたいとかかけたいときって

a * 5
a / 5

とかいうやり方が許されていないのは配列演算がまだ実装されてないから?
195デフォルトの名無しさん:2007/07/07(土) 01:35:07
yes.
196デフォルトの名無しさん:2007/07/07(土) 02:22:50
>>195 thanks.
197デフォルトの名無しさん:2007/07/07(土) 02:33:25
FORTRAN 並みの配列演算が行えるといいな。
198デフォルトの名無しさん:2007/07/07(土) 02:34:08
間違った。FORTRAN じゃなくて Fortran だ。90 以降。
199デフォルトの名無しさん:2007/07/07(土) 03:12:44
別に間違いというほどのことじゃないだろ
どのみち今の段階じゃバグ多すぎでとても数値計算に使う気になれナス
200デフォルトの名無しさん:2007/07/07(土) 03:28:26
まぁそれでも将来的にはFortran並みの実装を期待
201デフォルトの名無しさん:2007/07/07(土) 03:33:08
a[:] = b[:] * 2 + c[:]; とか。
202デフォルトの名無しさん:2007/07/07(土) 04:04:18
標準関数にmatmulも入って欲しいな
配列演算じゃないけど個人的には**も使いたい
203デフォルトの名無しさん:2007/07/08(日) 04:20:42
そういえばLatex→Fortranと入ってきた俺はC言語にいたって
pow関数を使わなきゃいけないと知ったときやたら面倒だなと思った
204デフォルトの名無しさん:2007/07/20(金) 09:36:57
powってコストが高そうなイメージがあるんで掛け算で書いてたなあ
205デフォルトの名無しさん:2007/08/10(金) 01:19:29
age!()
206デフォルトの名無しさん:2007/08/12(日) 03:02:37
こっちはずいぶん過疎ってるなぁ・・・・
207デフォルトの名無しさん:2007/08/20(月) 14:29:29
Visual D 2008 Express Edition マダー?
208デフォルトの名無しさん:2007/08/20(月) 14:30:13
D/CLI マダー?
209デフォルトの名無しさん:2007/08/26(日) 02:23:52
Dで使えるyaccやlexありますか?
210デフォルトの名無しさん:2007/08/26(日) 02:27:01
パーサジェネレータならd.announceに出てたな
news://news.digitalmars.com:119/[email protected]

http://apaged.mainia.de
211デフォルトの名無しさん:2007/09/16(日) 12:46:06
D言語ってphobosを使って書く分には実行ファイルだけで動きますか?
phobosもランタイムライブラリだと聞いたので、実行する側にも
そのランタイムがないと動かないのですか?
よろしくおねがいします。
212デフォルトの名無しさん:2007/09/16(日) 13:07:54
スタチックリンクされる。
213デフォルトの名無しさん:2007/09/16(日) 13:14:21
>>212
やっぱりそうなんですか・・・ほとんど空のコードでも結構な容量だったんで。

でも公式に「Phobos is the standard runtime library that comes with the D language compiler.」なんて書いてあって・・・
ライブラリが静的動的どうこうという話について私の理解が足りてないのでしょうね・・・
214デフォルトの名無しさん:2007/09/16(日) 13:27:36
ランタイムライブラリって、動的か静的かに関係ない言い方だったんですね…
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

となってしまい、コンパイル出来ません。
どうしたら良いんでしょう。途方に暮れています
216デフォルトの名無しさん:2007/10/09(火) 22:38:38
D1.0とD2.0の違いについて教えてください。
1.0は仕様凍結でバージョンアップはバグフィックスのみで、
2.0は仕様未確定だけど新機能使えるって認識でOK?
あと、今のところ大きな変更は const な引数や戻り値が使えることになったのと
最近追加された extern(C++) ぐらい?
217デフォルトの名無しさん:2007/10/10(水) 00:15:35
1.0が仕様凍結されている保証はないと思う
他はそんな感じ
218デフォルトの名無しさん:2007/10/10(水) 22:10:33
>>217
ありがとうございます。
うーん、まだ仕様が変わる可能性があるんですか。
互換性のなくなる仕様変更はさすがにやめてほしいなぁ。
219デフォルトの名無しさん:2007/10/11(木) 01:20:03
変えないと明言したと聞いたことはないけど
わざわざ2.0を作ったんだから互換性がなくなるような変更は
1.0ではもうない可能性は高いと推測はできる
でも推測止まり
220デフォルトの名無しさん:2007/12/01(土) 20:49:51
D人口がJavaScript人口の半分以上という事実

http://www.tiobe.com/index.htm?tiobe_index
221デフォルトの名無しさん:2007/12/02(日) 01:41:21
どう考えてもJavascriptを過小評価しすぎ。

それともJScriptとJavascriptとActionScriptを別言語扱いしたのかな。
222デフォルトの名無しさん:2007/12/04(火) 18:31:14
void[]というのは、メモリ領域を先頭のポインタとバイト数のペアで扱うための型、という認識であっていますか?
223デフォルトの名無しさん:2008/01/19(土) 11:50:36
この言語ちゃんと実装できるの?
在任中には業務で使わない気がして来た
224デフォルトの名無しさん:2008/01/19(土) 21:17:04
コンパイラが実装できた部分が言語仕様として公開されてる。

バグが結構あるし、何より仕様がころころ変わるから、業務には使わないほうが賢明だが。
225デフォルトの名無しさん:2008/01/19(土) 21:19:44
D 3.0 で const 関連がなかった事にされたりして
226デフォルトの名無しさん:2008/01/19(土) 23:15:52
20年後ぐらいには実用言語になってないかな。
227デフォルトの名無しさん:2008/01/19(土) 23:26:49
C++1xが出る頃にはある程度使えるようになってるんじゃね。
228デフォルトの名無しさん:2008/01/20(日) 00:00:10
で、その x は 36 進(hexatrigesimal)の略なんだよね
229デフォルトの名無しさん:2008/01/20(日) 00:22:43
いいえ,hexatetragesimalです。
230デフォルトの名無しさん:2008/01/21(月) 08:40:41
コンパイラのバグで生成されたネイティブコードで不具合とかいう事象報告されてる?
不具合をアセンブリで追わなきゃならないんだったら趣味的にも使う気になれんのだが
231デフォルトの名無しさん:2008/01/21(月) 08:45:38
この言語GCいらんくね?
232デフォルトの名無しさん:2008/01/21(月) 12:58:59
配列を連結するとコピーが作られるし、
配列のスライスも配列として扱えるから、
GCは必要不可欠。
233デフォルトの名無しさん:2008/01/22(火) 01:34:15
>>230
何はともあれ再現コードplz

昔四則演算だったかとても基本の部分にバグがあって計算間違ったりしてたなあw
さすがに発見後すぐ対応されたみたいだけども
234デフォルトの名無しさん:2008/01/22(火) 08:55:29
>>232
スタックに積んだら?
スコープアウト後も保持が無くなるからアウトかいな
235デフォルトの名無しさん:2008/01/22(火) 13:34:08
標準ライブラリからして配列のコピーやスライスをどんどん返してくるから、
GCなしではかなり生産性落ちると思う。
236デフォルトの名無しさん:2008/01/22(火) 19:05:54
教えてくれ
const char*を帰すconstメンバ関数ってどーやって書くの?
237デフォルトの名無しさん:2008/01/22(火) 19:18:19
class C {
const const(char)* f() {
return "D万歳!";
}
}
238デフォルトの名無しさん:2008/01/23(水) 08:40:48
>>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
239デフォルトの名無しさん:2008/01/23(水) 08:46:27
>>237
ついでに教えてくれ
C(++)では関数内のリテラルはスタックを指すけどGCのあるDでは例に上げてくれた書き方が許される?
240デフォルトの名無しさん:2008/01/23(水) 08:51:01
>>238

const CからCに出来んよ、って怒られるんだっちゃ
241デフォルトの名無しさん:2008/01/23(水) 13:32:12
>>238
C[10] c;

void foo(C[] a){
c[3..6]=a[0];
}
242デフォルトの名無しさん:2008/01/23(水) 13:33:51
>>239
文字列リテラルはinvariant(char)[N]型の配列だからどこかから参照してる限りは生きてる。
243デフォルトの名無しさん:2008/01/23(水) 16:54:48
>>241
引数にはconstで渡したいんよ…
244デフォルトの名無しさん:2008/01/23(水) 17:17:13
_
245デフォルトの名無しさん:2008/01/23(水) 17:56:50
>>243
コピーして渡せばいいじゃん。

しかし、オブジェクトでない限りサイズ取得方法が・・・sizeofで取れるんだっけ。
246デフォルトの名無しさん:2008/01/23(水) 20:28:57
Dの配列は長さと先頭ポインタの組だから常にlengthプロパティで長さを取得できるよ
247デフォルトの名無しさん:2008/01/24(木) 08:30:06
>>244
_か、そうか、d

>>245
まあそうなんだが静的解決させたい


どーでもいいが
const C c[10];
とかって宣言したらcは触れんよね?
コンパイラにはconstに初期値がないエラーを吐いて欲しいゾ
248デフォルトの名無しさん:2008/01/24(木) 08:37:10
んでもう一点

class C{}

C[] c=new C[10];

とした場合
個々のインスタンスは
for(int i;i<c.length;++i)
c[i]=new C;

で割り当てるしかない?
それともなんか工夫して書ける?
249デフォルトの名無しさん:2008/01/24(木) 13:48:30
>>248
C[] c = new C[10];
foreach(ref e; c) e = new C;
250デフォルトの名無しさん:2008/01/24(木) 14:51:30
>>249
refか、なるほど
愛してる
251デフォルトの名無しさん:2008/01/27(日) 00:39:35
なんか new C[10] で
個々のインスタンスは生成されないのって
違和感あるんだよなあ・・・
そんなことない?
252デフォルトの名無しさん:2008/01/27(日) 00:45:24
勝手に生成される C++ は
デフォルトコンストラクタしか呼べないから不便。
まあ boost::ptr_vector とかつかやええんやけども。
253デフォルトの名無しさん:2008/01/27(日) 00:57:46
ポインタ用の領域を確保しただけなのに、勝手に実体まで作られてるほうが気持ち悪いと思う。
254デフォルトの名無しさん:2008/01/27(日) 01:41:54
>>251
構造体使えばok
255デフォルトの名無しさん:2008/01/28(月) 00:00:22
オブジェクトのインスタンスと配列が区別ついてないだけじゃねーか
256デフォルトの名無しさん:2008/01/28(月) 00:44:37
>>255
C++ではclassとstructの違いがないから、
new C[10]はCの大きさの10倍の領域を確保して、
10回デフォルトコンストラクタが呼ばれるの。

一方、Dではclassは常に参照型だから、
new C[10]はポインタ10個分の領域しか確保しないの。

ok?
257251:2008/01/30(水) 02:25:37
>>252
なるほど確かに不便だ
言われてみればそれで困ったことあった気がする
258デフォルトの名無しさん:2008/02/06(水) 16:33:50
259デフォルトの名無しさん:2008/02/07(木) 08:27:18
>>258
MSやめてくれ。
260デフォルトの名無しさん:2008/03/01(土) 03:34:01
if文の条件式で宣言した変数ってelse節から参照できないの?
261デフォルトの名無しさん:2008/03/01(土) 11:41:00
できないよ
ifブロックで使う必要ないんだったら条件式を逆転すれば?
ifとelse両方で使いたいならその書き方するもんじゃないし
262デフォルトの名無しさん:2008/03/01(土) 12:18:43
> ifとelse両方で使いたいならその書き方するもんじゃないし
ifがelse節含め全域を覆っていると考えるか、
if節、else節、って感じで分かれてると考えるか、の違いだろな。

Dは後者だから、全域を覆いたいならそういうブロック文を書かないといけない、
ってところか。
263デフォルトの名無しさん:2008/03/01(土) 20:03:57
C++ だと else から見れるから
単なる設計思想の違いじゃないかな。
特に検討したことがなかっただけ、なんてオチだったらおもろいが。
264デフォルトの名無しさん:2008/03/01(土) 23:22:24
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を使うと整数以外が入っている場合には例外を投げてくれるのですが
動作が止まってしまうので何か解決策が無いかと考えています。

何か良い方法があればよろしくお願いします。
267デフォルトの名無しさん:2008/07/10(木) 13:18:36
書きそびれましたが、現在はstd.regexpのfindを使って正規表現で振り分けをしています。

string reg = "12345";
std.regexp.find(reg, "[^(0-9)]"); // false

reg = "1235b3323s";
std.regexp.find(ptn, "[^(0-9)]") // true

というようにやっています。
268デフォルトの名無しさん:2008/07/10(木) 13:28:40
済みません、解決しました
std.stringにisNumericという関数が存在しました。
269デフォルトの名無しさん:2008/07/20(日) 22:14:27
簡単な動作をする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 を使っています。
270デフォルトの名無しさん:2008/08/09(土) 03:11:34
D言語で作っていたプログラムが
WinXPなら動くのにVistaでは動かないのですが
の仕様とかが変わっているのでしょうか?
271デフォルトの名無しさん:2008/08/09(土) 03:12:10
>>270
× の仕様
○ APIの仕様
272デフォルトの名無しさん:2008/08/09(土) 03:27:29
Win32APIの使い方間違えてるだけだろ。どうせ
273デフォルトの名無しさん:2008/11/28(金) 13:02:17
ようやくコンパイルまでたどり着いたけどファイルが複数あるときはどうすればいいんだろ、うまくいかない
----------------------------------
// 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
274デフォルトの名無しさん:2008/11/28(金) 20:29:37
hello2の名前がかぶってるのが原因じゃね?
275デフォルトの名無しさん:2008/11/28(金) 21:00:48
すいません、別スレで解決しました。
http://pc11.2ch.net/test/read.cgi/tech/1226631916/146
276デフォルトの名無しさん:2008/11/29(土) 00:18:49
なんだいマルチかよ糞っ垂れ
277デフォルトの名無しさん:2008/11/29(土) 10:38:14
書き込んでから過疎スレだと気づいたんだよ、初心者スレなのかどうかもよくわからないし。
278デフォルトの名無しさん:2008/11/29(土) 13:14:02
なら答えつく前に移動したと書けよ
279デフォルトの名無しさん:2008/11/29(土) 18:01:52
ある時の俺は過疎スレなのに気づいたけどマルチや移動が見苦しいから忘却することにした
280デフォルトの名無しさん:2008/12/05(金) 20:06:00
これが匿名掲示板クオリティ
281デフォルトの名無しさん:2008/12/09(火) 00:44:08
dsssでproxyの設定ってできますか?
282デフォルトの名無しさん:2009/04/08(水) 03:48:13
そうかなあ
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
287デフォルトの名無しさん:2010/02/15(月) 06:53:18
まるちやめれ
288デフォルトの名無しさん
でどうなった