D言語なら俺に聞け
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
05/02/12 10:35:10D言語のことなら知らないこと意外ならすべてわかる。
だからなんでも聞いてくれ。
ただし、プライベートなことには答えられねーぞ
0002デフォルトの名無しさん
05/02/12 10:46:160003デフォルトの名無しさん
05/02/12 11:16:530004デフォルトの名無しさん
05/02/12 12:33:400005デフォルトの名無しさん
05/02/12 13:55:41売り切れでしたから!残念!!
0006デフォルトの名無しさん
05/02/12 14:36:18漏れもDのことなら知らないこと以外なんでもわかるな。
>>4
車で突っ込んだり、売り切れだって切れたり、すでに発症してる人たちもいるようで・・・
0007デフォルトの名無しさん
05/02/12 16:01:21D言語ができたのはいつですか?
0008デフォルトの名無しさん
05/02/12 20:11:21http://f17.aaa.livedoor.jp/~labamba/
0009デフォルトの名無しさん
05/02/12 20:21:060010デフォルトの名無しさん
05/02/12 20:23:260011デフォルトの名無しさん
05/02/12 20:37:15やべぇ…
0012デフォルトの名無しさん
05/02/12 20:51:090013デフォルトの名無しさん
05/02/12 23:40:23自演乙
時に連想配列にnull代入すると初期化されるんだが、
仕組み教えてくれ。
0014デフォルメの名無しさん
05/02/22 14:06:49俺には無理だというところがむかつくぜ。
>>1は10年間は嘘だろう!さすがに。
そんな嘘吐き>>1を叩く!!徹底的にな!!
0015デフォルトの名無しさん
05/02/22 19:26:51ttp://kur0nek0.web.infoseek.co.jp/obon/04/index.html
0016デフォルトの名無しさん
05/02/22 19:44:200017デフォルトの名無しさん
05/02/22 20:40:05エロは19話。
0018デフォルトの名無しさん
05/02/22 21:54:55http://www.tiduru.sytes.net/img-box/img20040727015957.jpg
0019デフォルトの名無しさん
05/02/22 23:13:410020デフォルトの名無しさん
05/02/22 23:14:34画像じゃないね。
0021デフォルトの名無しさん
05/02/23 11:09:38トロイの木馬を検出しますた
0022デフォルトの名無しさん
05/02/23 21:55:210023デフォルトの名無しさん
05/02/23 21:58:14http://image.mycure.net/upload/k/ku/kureha_56/kureha_5610963730320297_L.jpg
D言語作者 その2
http://image.mycure.net/upload/k/ku/kureha_56/kureha_5610962171060609_L.jpg
0024デフォルトの名無しさん
05/02/23 22:27:2161.194.13.120 ってどこ?
0025デフォルトの名無しさん
05/02/23 22:51:5461.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
0026デフォルトの名無しさん
05/02/24 00:16:45http://www.tiduru.sytes.net/img-box/img20040727015957.jpg
の中にそのアドレスいっぱい書かれてるね
0027デフォルトの名無しさん
05/02/24 00:33:030028デフォルトの名無しさん
05/03/04 12:47:430029デフォルトの名無しさん
05/03/04 23:30:260030デフォルトの名無しさん
05/03/04 23:34:53何歳?10歳?
0031デフォルトの名無しさん
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日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0032デフォルトの名無しさん
05/03/04 23:39:32実際のところどうなの.
教えてエロい人!
0033デフォルトの名無しさん
05/03/04 23:48:52別スレの方で windows.h あるじゃんという返事をもらったけど,
どういうことか教えてもらえないですか?
自分で変換しろってこと?
ってことは,ないってことでは・・・.
0034デフォルトの名無しさん
05/03/05 00:07:280035デフォルトの名無しさん
05/03/05 00:11:51向こうを本陣にすべきだった。
そのことに関する私の見解。
windows.hあるじゃん
2つダウンロードしたでしょう?
両方検索してみましたか?
だがデフォルトで全てのAPI使えない問題
を突破できずに居る私。
0036デフォルトの名無しさん
05/03/05 00:16:350037デフォルトの名無しさん
05/03/05 00:23:36平行線になるとあれなので一度まとめますね.
windows.dとして日本で有名なのは
http://hp.vector.co.jp/authors/VA028375/d/windows.h.html
ですが,0.111あたり(?)のアップデートでそのままでは使えなくなりました.
そこで,0.115に対応した同程度によい質のものがないのか,という質問でした.
上記のURLにあるやつを修正すればいいのですが,どこがまずいのかわからんのです.
コンパイルは通せたけど,Win32APIのCreate()で作ったウィンドウが表示されないという
トラブルが解決できないので.
0038デフォルトの名無しさん
05/03/05 00:27:320039デフォルトの名無しさん
05/03/05 00:29:35Win9xを馬鹿にしておいてすぐ謝ってた、実はいい人だ。
これを正しく使うにはフォルダとか構成どうするのですか?
二つの区別はわからないが.hをおしえてと言ってたよ。
0040デフォルトの名無しさん
05/03/05 00:33:210041デフォルトの名無しさん
05/03/05 00:45:03どっちでも同じでした.
というか,下の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);
}
}
}
0042デフォルトの名無しさん
05/03/05 00:50:04DispatchMessageもA付ける必要があるんじゃないか?
0043デフォルトの名無しさん
05/03/05 00:51:39GetMessageAのAを外してみるとか?
0044デフォルトの名無しさん
05/03/05 00:51:46はいはい知らん子は黙ってようねヨチヨチ
0045デフォルトの名無しさん
05/03/05 00:53:26004632
05/03/05 00:56:58自分は
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
としてコンパイルしている.
0047デフォルトの名無しさん
05/03/05 00:58:01004832
05/03/05 01:14:59ttp://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 しか表示されないです・・・.
0049デフォルトの名無しさん
05/03/05 01:41:36CreateWindow関数呼ぶときにWS_VISIBLEをつける。
またはその後にShowWindow関数呼ぶ。
のどちらかを行ってる?
005032
05/03/05 01:49:42付けてますよ.
なんでだろうなぁ.
以下,一部抜粋.
// ウィンドウクラスの登録
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);
}
005232
05/03/05 01:59:22あ,ごめんなさい.
ただの assert() だと思ってわざと消しちゃいました.
...
wc.lpszMenuName = null;
wc.cbClsExtra = wc.cbWndExtra = 0;
assert(RegisterClass(&wc));
これが正しいものです.
005349
05/03/05 02:06:32RegisterClassはassert文の外に出したほうが良いよ。
でも、これが原因じゃないだろうし、分からんなぁ。
005432
05/03/05 02:10:1549さま,それが原因でした(^^;
ありがとうございます.
005532
05/03/05 02:15:55windows.d のコンパイルエラーを取ったら,ちゃんと動いたと.
そういうことのようです.
お騒がせしました(^^;
005649
05/03/05 02:19:15assert文の罠は結構引っかりやすいから、要注意。
......俺もSDL_Init関数で同じ罠にかかった経験あるからな。
0057デフォルトの名無しさん
05/03/05 04:18:14SDL内部で必ずアクセス違反が出るんだけど、仕様ですか?
0058デフォルトの名無しさん
05/03/05 04:18:470059デフォルトの名無しさん
05/03/05 10:00:380060デフォルトの名無しさん
05/03/05 17:37:380061デフォルトの名無しさん
05/03/05 21:00:13みんな考えることは同じなんだねぇ。。。
ただ、ガーベジコレクションの問題が有って、D自体のソースが公表されないと
難しいと思うんだけど、その辺どうなの?
D側も、OSレベルでアプリケーションのメモリ管理が欲しいと思ってるし、
OS側も、アプリケーションのガベコレを行いたいと思ってる様だけど、
ここに手を付けた人はいないんだよね。。。
D言語という、新しい言語が出来たんだから、だれかが、10年ぶりにピュアに
新しいOSを発表しても面白かろうと思うんだけど、
0062デフォルトの名無しさん
05/03/05 21:22:11ガベコレ初心者ですか?
0063デフォルトの名無しさん
05/03/05 22:54:27ピュアなのは>61の脳内
0064デフォルトの名無しさん
05/03/06 07:17:550065デフォルトの名無しさん
05/03/06 08:19:590066デフォルトの名無しさん
05/03/06 15:56:21D言語は来ないだろ…。
言語仕様で勝負する時代はもう10年前に通り過ぎてる。
0067デフォルトの名無しさん
05/03/06 20:28:42ただDが凡庸なだけで。
0068デフォルトの名無しさん
05/03/06 20:35:370069デフォルトの名無しさん
05/03/07 14:55:590070デフォルトの名無しさん
05/03/07 15:11:260071デフォルトの名無しさん
05/03/15 16:02:27相談役「まだ早いのかもしれませんよ。」
スレスト隊長「・・・。まあよい。そのうち来るさ。」
0072デフォルトの名無しさん
05/03/16 04:05:30http://pc5.2ch.net/test/read.cgi/tech/1109933426/
0073デフォルトの名無しさん
05/03/16 23:17:39隊員A「誘導したら駄目と言うことですか?」
スレスト隊長「そうだ。」
0074デフォルトの名無しさん
2005/05/08(日) 20:08:530075デフォルトの名無しさん
2005/05/08(日) 20:11:29おkwwwおkwwwwwwwwwっうぇwwwwww
うはっwwwwww
うぇwwwうぇwwwwwwwwww
wっっうぇ
wwwっうぇwwwww
w
0076デフォルトの名無しさん
2005/07/28(木) 19:03:460077デフォルトの名無しさん
2005/07/28(木) 22:07:090078デフォルトの名無しさん
2005/08/01(月) 21:43:340079デフォルトの名無しさん
2005/08/01(月) 21:48:08油断してた。
0080デフォルトの名無しさん
2005/08/01(月) 22:07:460081デフォルトの名無しさん
2005/08/02(火) 23:29:590082デフォルトの名無しさん
2005/08/02(火) 23:35:06C, 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/
0083デフォルトの名無しさん
2005/08/02(火) 23:55:26これは?
0084デフォルトの名無しさん
2005/08/03(水) 01:21:200085デフォルトの名無しさん
2005/08/08(月) 03:45:390086デフォルトの名無しさん
2005/08/08(月) 07:37:57か飽きた。
0087デフォルトの名無しさん
2005/08/08(月) 13:01:370088デフォルトの名無しさん
2005/08/08(月) 15:23:430089デフォルトの名無しさん
2005/09/25(日) 21:52:32クラスの宣言の意味がようわからないので教えてください
a b = new a;
で、どうしてクラス宣言するときnewしないとだめなんですか??
bっていうのはaの型へのポインタなんでしょうか・・・?
今までCしかやったことないのでよくわかりません、助けてください
0090デフォルトの名無しさん
2005/09/25(日) 23:10:46ようするにbはaの型へのポインタ(と似たような)物というわけで、その理解で問題ない。
0091デフォルトの名無しさん
2005/11/25(金) 23:45:35linuxなんだけど、どうすればできますか?
0092デフォルトの名無しさん
2006/02/14(火) 06:46:360093デフォルトの名無しさん
2006/02/14(火) 16:32:28今書けばバイブルになる
0094デフォルトの名無しさん
2006/02/15(水) 01:17:04D言語パーフェクトガイド―Windows Linux FreeBSD対応
http://www.amazon.co.jp/exec/obidos/ASIN/4774122084/
0095デフォルトの名無しさん
2006/02/15(水) 01:23:530096デフォルトの名無しさん
2006/02/18(土) 23:06:200097デフォルトの名無しさん
2006/02/28(火) 09:21:22パスは通したが、未定義シンボルって言われますた
0098デフォルトの名無しさん
2006/03/09(木) 00:04:140099デフォルトの名無しさん
2006/03/09(木) 04:18:09もはや古いよ・・・
0100http://www.vector.co.jp/soft/win95/util/se072729.html
2006/03/18(土) 21:46:12もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
0101デフォルトの名無しさん
2006/04/08(土) 16:36:490102デフォルトの名無しさん
2006/04/08(土) 22:17:290103デフォルトの名無しさん
2006/04/10(月) 14:18:590104デフォルトの名無しさん
2006/07/18(火) 00:39:070105デフォルトの名無しさん
2006/09/28(木) 18:31:130106デフォルトの名無しさん
2006/09/28(木) 23:24:320107デフォルトの名無しさん
2006/09/29(金) 15:24:430108デフォルトの名無しさん
2006/12/04(月) 18:13:55linuxでSDLライブラリがコンパイルできない。
0109108
2006/12/15(金) 19:31:400110デフォルトの名無しさん
2006/12/29(金) 14:13:570111デフォルトの名無しさん
2007/01/11(木) 12:09:55びっくりするほど速いよね
フンクソ思いプリプロセッサがないからじゃない。
0112デフォルトの名無しさん
2007/01/11(木) 19:04:340113デフォルトの名無しさん
2007/01/12(金) 01:28:070114デフォルトの名無しさん
2007/01/13(土) 11:08:23Borland Pascalが速いんだよ。
まぁ、言語仕様的にコンパイル速度を上げやすいってのもあるかな。
0115デフォルトの名無しさん
2007/01/13(土) 11:13:320116デフォルトの名無しさん
2007/01/13(土) 12:37:250117デフォルトの名無しさん
2007/01/13(土) 13:07:330118デフォルトの名無しさん
2007/01/13(土) 13:30:192. 最適化がショボい
3. コンパイラのアルゴリズムが洗練されている
この 3 つがコンパイラが高速になる条件だな。
2 はない方がいい条件だけど。
0119デフォルトの名無しさん
2007/01/13(土) 13:51:58それはそれでいいんじゃね
0120108
2007/02/15(木) 20:54:510121デフォルトの名無しさん
2007/02/21(水) 16:41:27GDCは普通のC++のコンパイラ並の速度なのはなんでだぜ?
0122デフォルトの名無しさん
2007/02/27(火) 03:30:47バックエンドがGCCだから
抽象化のためにかなり速度を犠牲にしている
0123デフォルトの名無しさん
2007/02/27(火) 18:03:39何か瀬がないな。
0124デフォルトの名無しさん
2007/02/27(火) 18:13:25それに細かいことを言えば、「コンパイル速度を上げられるような」言語設計というよりは
「コンパイラを比較的楽に作れる」言語設計を目指してるんだと思うし、
そういう風に考えれば、まぁ遅くても「話が違うだろ!」とまでは行かないから安心安心と。
いや、格好いいことじゃないけどね、遅いのは。
0125デフォルトの名無しさん
2007/02/28(水) 00:47:290126デフォルトの名無しさん
2007/02/28(水) 23:40:350127デフォルトの名無しさん
2007/03/01(木) 00:56:440128デフォルトの名無しさん
2007/03/19(月) 14:02:45してるのに
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();しても
そんなの宣言されてない言われます…
どうしたら標準入力できるのでしょうか。
0129デフォルトの名無しさん
2007/03/19(月) 14:08:02char[] 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\;
です
0130C言語
2007/03/19(月) 14:08:57ここでひとつ質問。
C言語で作ったのをコンピャイルして実行ファイルにしたあと、それをダブルクリックしても一瞬で終了しちゃいます。何とかしてシステムの動きを止められないでしょーか?
こんなおばかな僕に誰か救いの手をプリーズ。
0131デフォルトの名無しさん
2007/03/19(月) 22:05:34{getchar();
fflush(stdin);}
{kbhit();}
などなどの方法がある。
0132デフォルトの名無しさん
2007/03/19(月) 22:06:120133デフォルトの名無しさん
2007/03/19(月) 22:11:480134デフォルトの名無しさん
2007/03/20(火) 23:49:320135デフォルトの名無しさん
2007/03/21(水) 03:02:16std.sreamのreadLineとかってのは、
Streamクラスのメンバ関数なので、
その(派生)クラスのオブジェクトをまず作らないといけない。
使用例はここにあった。
http://f17.aaa.livedoor.jp/~labamba/?std.stream#content_1_27
で、標準入出力で遊ぶならstd.cstreamの方を使うといいよ。
buf = din.readLine(); とかいう感じで使える。
0136デフォルトの名無しさん
2007/03/22(木) 23:24:55ぬかった!!
dinだったのか…なるほどでございます。
cstreamを使えばmemorystreamをしなくてもdin.うんたらで出力できるんですね。
これは何というか、標準出力って概念を感じさせない使い方でこれまたエレガント…うっとり
0137デフォルトの名無しさん
2007/03/24(土) 00:22:140138デフォルトの名無しさん
2007/03/25(日) 19:11:11というか、popenつかえばいいのでは。
0139デフォルトの名無しさん
2007/04/07(土) 10:46:05import 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;
}
0140デフォルトの名無しさん
2007/04/07(土) 10:49:47i[i.length] とか明らかにおかしいし、そもそも素数の始まりは 2 じゃろう
0141デフォルトの名無しさん
2007/04/07(土) 11:33:43i[i.length]という部分をi[c+1]とした所巧く動作しました。
ありがとうございます。
別のアプローチも視野にいれてプログラムを組んでいたのですが、
とても中途半端な状態で公開してしまい恥ずかしい限りです…
0142デフォルトの名無しさん
2007/04/09(月) 09:45:55D言語のリファレンス見た限り無理そうだったので、
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ファイルも指定したのですが、リンクがうまくいかないみたいです。
なんか根本的な勘違いをしているような気がします。
こういう場合どうすればいいのでしょうか。
0143デフォルトの名無しさん
2007/04/10(火) 06:45:25日本語でおk
0144デフォルトの名無しさん
2007/04/13(金) 18:18:14確認してないから、一応聞くが、マルチしてないよな?
してなければ以下を試してみてくれ。
もしマルチしてたら帰ってくれ
import std.file;
int main()
{
char [] k;
k.length = 10;
foreach (int c, v;k)
k[c] = c;
write ("new.txt", k);
return 0;
}
0145デフォルトの名無しさん
2007/04/13(金) 18:19:200146デフォルトの名無しさん
2007/04/14(土) 02:01:19むしゃくしゃして
まるちっち作ってやった
反省してない
(((())))))))))))
伐, ,/リリ
l2] 2] 3
( ε ノ
「 ll二ll l
(_l ., (_)
(__(__l
0147デフォルトの名無しさん
2007/05/10(木) 02:41:220148デフォルトの名無しさん
2007/05/10(木) 04:10:54専用ブラウザを駆使し全スレヲッチ/5秒でこなす重度の2ch依存者が
公共の利益を代表しているかの様に錯覚し声高につまらない事を指摘する行為
忙しい朝っぱらに難癖付けて来るゴミ回収場常駐のキチガイババアと同種です。
0149デフォルトの名無しさん
2007/05/10(木) 16:33:400150デフォルトの名無しさん
2007/05/11(金) 02:40:24struct foo
{
int x = 0;
}
foo mat[100];
って使うときに配列の構造体の変数xすべてに代入したいとき
mat.x = 1;
とかやるとプロパティじゃねぇみたいな感じで怒られるから
構造体の初期値で代入したり
mat[i].x = 1ってやってループ回して代入してるんですが
何かもっと便利な方法って無いですか?
0151デフォルトの名無しさん
2007/05/11(金) 02:50:070152デフォルトの名無しさん
2007/05/11(金) 03:09:350153デフォルトの名無しさん
2007/05/11(金) 07:27:000154デフォルトの名無しさん
2007/05/12(土) 00:24:16150です 便利な方法を教えていただきありがとうございました^^
0155デフォルトの名無しさん
2007/05/22(火) 00:33:27にするにはどうすればいいですか?
0156デフォルトの名無しさん
2007/05/22(火) 00:43:560157デフォルトの名無しさん
2007/05/22(火) 00:45:31dmd -w
0158デフォルトの名無しさん
2007/05/23(水) 00:30:430159デフォルトの名無しさん
2007/05/24(木) 19:35:40そうならないのは何でなんでしょうか?
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));
}
0160デフォルトの名無しさん
2007/05/24(木) 19:46:190161デフォルトの名無しさん
2007/05/24(木) 19:54:31-debug -Oで30、-release -Oで362882156
0162デフォルトの名無しさん
2007/05/24(木) 19:55:360163デフォルトの名無しさん
2007/05/24(木) 19:57:49-O だと変になるな。
0164デフォルトの名無しさん
2007/05/25(金) 03:04:31ここのxがインスタンス不明になるからじゃないの?
0165デフォルトの名無しさん
2007/05/25(金) 03:08:49これだと this が伝播しないってことか?
0166デフォルトの名無しさん
2007/05/25(金) 03:15:35b = new B({ return x * 3; });
もおかしな挙動をするし。
0167デフォルトの名無しさん
2007/05/25(金) 03:19:250168デフォルトの名無しさん
2007/05/25(金) 03:53:21これだけの情報でどうやって x が A の面罵だって分かるのかな?
0169デフォルトの名無しさん
2007/05/25(金) 03:56:16そうなってくれないと困る罠。
まあ、バグだな。
0170デフォルトの名無しさん
2007/05/29(火) 22:03:130171デフォルトの名無しさん
2007/05/29(火) 22:24:31なに言ってんの? 超流行まくりだよ、俺の頭の中では。
0172デフォルトの名無しさん
2007/05/31(木) 13:36:10これからだろD言語は
・・・だよな?
0173デフォルトの名無しさん
2007/06/02(土) 17:43:29静的配列に動的配列渡すのもまだ未実装なんでしょうか?
0174デフォルトの名無しさん
2007/06/02(土) 17:50:26int[] a = [1, 2, 3];
int[3] b = a;
}
こういうこと?言わんとしていることがちょっとよくわからん。
0175173
2007/06/02(土) 18:08:23書いてくださったとおりの意味です
0176デフォルトの名無しさん
2007/06/02(土) 18:17:250177デフォルトの名無しさん
2007/06/02(土) 20:45:59人が神に近づこうとするのは自然だ。
0178デフォルトの名無しさん
2007/06/02(土) 23:49:29マダァ?(・∀・ )っ/凵⌒☆チンチン
0179デフォルトの名無しさん
2007/06/03(日) 00:20:500180デフォルトの名無しさん
2007/06/10(日) 02:25:38標準的なライブラリってありますか?
既出でしたらすいません
0181デフォルトの名無しさん
2007/06/24(日) 03:19:36漏れは聞いたことないな
つか他の言語でも百家争鳴なかんじじゃね?
テンプレートのライブラリも今のところ貧弱っぽいし
他の言語で書かれてあるのを利用するかポーティングするか
もしくは自分でつくるかしたほうがいいかも
0182デフォルトの名無しさん
2007/06/24(日) 03:36:070183デフォルトの名無しさん
2007/06/25(月) 02:17:500184デフォルトの名無しさん
2007/06/26(火) 00:35:550185デフォルトの名無しさん
2007/06/26(火) 05:36:330186デフォルトの名無しさん
2007/06/26(火) 17:56:03ところでdmd 1.x系統で何事もなく動いてたプログラムを
dmd 2.0でコンパイルしたら実行時に
Error: Stack Overflow
って出て止まるんだけどこれはプログラムに難点があると見るべき?
0187デフォルトの名無しさん
2007/06/26(火) 18:03:23実際にソース見てみないことにはわからんな。
0188デフォルトの名無しさん
2007/06/26(火) 18:19:59レスサンクス
ソース眺めてたら原因の箇所がつかめたっぽいので
ちょっと調べてみるよ
0189デフォルトの名無しさん
2007/06/29(金) 02:47:370190デフォルトの名無しさん
2007/06/29(金) 05:44:240191デフォルトの名無しさん
2007/06/29(金) 11:28:07コンパイラはオプションで切り替えれたりしない?
0192デフォルトの名無しさん
2007/06/29(金) 17:02:550193デフォルトの名無しさん
2007/06/29(金) 19:55:550194デフォルトの名無しさん
2007/07/07(土) 01:23:23a * 5
a / 5
とかいうやり方が許されていないのは配列演算がまだ実装されてないから?
0195デフォルトの名無しさん
2007/07/07(土) 01:35:070196デフォルトの名無しさん
2007/07/07(土) 02:22:500197デフォルトの名無しさん
2007/07/07(土) 02:33:250198デフォルトの名無しさん
2007/07/07(土) 02:34:080199デフォルトの名無しさん
2007/07/07(土) 03:12:44どのみち今の段階じゃバグ多すぎでとても数値計算に使う気になれナス
0200デフォルトの名無しさん
2007/07/07(土) 03:28:260201デフォルトの名無しさん
2007/07/07(土) 03:33:080202デフォルトの名無しさん
2007/07/07(土) 04:04:18配列演算じゃないけど個人的には**も使いたい
0203デフォルトの名無しさん
2007/07/08(日) 04:20:42pow関数を使わなきゃいけないと知ったときやたら面倒だなと思った
0204デフォルトの名無しさん
2007/07/20(金) 09:36:570205デフォルトの名無しさん
2007/08/10(金) 01:19:290206デフォルトの名無しさん
2007/08/12(日) 03:02:370207デフォルトの名無しさん
2007/08/20(月) 14:29:290208デフォルトの名無しさん
2007/08/20(月) 14:30:130209デフォルトの名無しさん
2007/08/26(日) 02:23:520210デフォルトの名無しさん
2007/08/26(日) 02:27:01news://news.digitalmars.com:119/[email protected]
http://apaged.mainia.de
0211デフォルトの名無しさん
2007/09/16(日) 12:46:06phobosもランタイムライブラリだと聞いたので、実行する側にも
そのランタイムがないと動かないのですか?
よろしくおねがいします。
0212デフォルトの名無しさん
2007/09/16(日) 13:07:540213デフォルトの名無しさん
2007/09/16(日) 13:14:21やっぱりそうなんですか・・・ほとんど空のコードでも結構な容量だったんで。
でも公式に「Phobos is the standard runtime library that comes with the D language compiler.」なんて書いてあって・・・
ライブラリが静的動的どうこうという話について私の理解が足りてないのでしょうね・・・
0214デフォルトの名無しさん
2007/09/16(日) 13:27:36VBのように外部ファイルとしてランタイムが提供されているのに慣れていたので
てっきりランタイムライブラリというのは動的リンクするものだと思っていました
ありがとうございました
0215デフォルトの名無しさん
2007/10/03(水) 15:37:19int 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
となってしまい、コンパイル出来ません。
どうしたら良いんでしょう。途方に暮れています
0216デフォルトの名無しさん
2007/10/09(火) 22:38:381.0は仕様凍結でバージョンアップはバグフィックスのみで、
2.0は仕様未確定だけど新機能使えるって認識でOK?
あと、今のところ大きな変更は const な引数や戻り値が使えることになったのと
最近追加された extern(C++) ぐらい?
0217デフォルトの名無しさん
2007/10/10(水) 00:15:35他はそんな感じ
0218デフォルトの名無しさん
2007/10/10(水) 22:10:33ありがとうございます。
うーん、まだ仕様が変わる可能性があるんですか。
互換性のなくなる仕様変更はさすがにやめてほしいなぁ。
0219デフォルトの名無しさん
2007/10/11(木) 01:20:03わざわざ2.0を作ったんだから互換性がなくなるような変更は
1.0ではもうない可能性は高いと推測はできる
でも推測止まり
0220デフォルトの名無しさん
2007/12/01(土) 20:49:51http://www.tiobe.com/index.htm?tiobe_index
0221デフォルトの名無しさん
2007/12/02(日) 01:41:21それともJScriptとJavascriptとActionScriptを別言語扱いしたのかな。
0222デフォルトの名無しさん
2007/12/04(火) 18:31:140223デフォルトの名無しさん
2008/01/19(土) 11:50:36在任中には業務で使わない気がして来た
0224デフォルトの名無しさん
2008/01/19(土) 21:17:04バグが結構あるし、何より仕様がころころ変わるから、業務には使わないほうが賢明だが。
0225デフォルトの名無しさん
2008/01/19(土) 21:19:440226デフォルトの名無しさん
2008/01/19(土) 23:15:520227デフォルトの名無しさん
2008/01/19(土) 23:26:490228デフォルトの名無しさん
2008/01/20(日) 00:00:100229デフォルトの名無しさん
2008/01/20(日) 00:22:430230デフォルトの名無しさん
2008/01/21(月) 08:40:41不具合をアセンブリで追わなきゃならないんだったら趣味的にも使う気になれんのだが
0231デフォルトの名無しさん
2008/01/21(月) 08:45:380232デフォルトの名無しさん
2008/01/21(月) 12:58:59配列のスライスも配列として扱えるから、
GCは必要不可欠。
0233デフォルトの名無しさん
2008/01/22(火) 01:34:15何はともあれ再現コードplz
昔四則演算だったかとても基本の部分にバグがあって計算間違ったりしてたなあw
さすがに発見後すぐ対応されたみたいだけども
0234デフォルトの名無しさん
2008/01/22(火) 08:55:29スタックに積んだら?
スコープアウト後も保持が無くなるからアウトかいな
0235デフォルトの名無しさん
2008/01/22(火) 13:34:08GCなしではかなり生産性落ちると思う。
0236デフォルトの名無しさん
2008/01/22(火) 19:05:54const char*を帰すconstメンバ関数ってどーやって書くの?
0237デフォルトの名無しさん
2008/01/22(火) 19:18:19const const(char)* f() {
return "D万歳!";
}
}
0238デフォルトの名無しさん
2008/01/23(水) 08:40:48テンキュー
やってみる
あと
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
0239デフォルトの名無しさん
2008/01/23(水) 08:46:27ついでに教えてくれ
C(++)では関数内のリテラルはスタックを指すけどGCのあるDでは例に上げてくれた書き方が許される?
0240デフォルトの名無しさん
2008/01/23(水) 08:51:01逆
const CからCに出来んよ、って怒られるんだっちゃ
0241デフォルトの名無しさん
2008/01/23(水) 13:32:12C[10] c;
void foo(C[] a){
c[3..6]=a[0];
}
0242デフォルトの名無しさん
2008/01/23(水) 13:33:51文字列リテラルはinvariant(char)[N]型の配列だからどこかから参照してる限りは生きてる。
0243デフォルトの名無しさん
2008/01/23(水) 16:54:48引数にはconstで渡したいんよ…
0244デフォルトの名無しさん
2008/01/23(水) 17:17:130245デフォルトの名無しさん
2008/01/23(水) 17:56:50コピーして渡せばいいじゃん。
しかし、オブジェクトでない限りサイズ取得方法が・・・sizeofで取れるんだっけ。
0246デフォルトの名無しさん
2008/01/23(水) 20:28:570247デフォルトの名無しさん
2008/01/24(木) 08:30:06�_か、そうか、�d
>>245
まあそうなんだが静的解決させたい
どーでもいいが
const C c[10];
とかって宣言したらcは触れんよね?
コンパイラにはconstに初期値がないエラーを吐いて欲しいゾ
0248デフォルトの名無しさん
2008/01/24(木) 08:37:10class C{}
C[] c=new C[10];
とした場合
個々のインスタンスは
for(int i;i<c.length;++i)
c[i]=new C;
で割り当てるしかない?
それともなんか工夫して書ける?
0249デフォルトの名無しさん
2008/01/24(木) 13:48:30C[] c = new C[10];
foreach(ref e; c) e = new C;
0250デフォルトの名無しさん
2008/01/24(木) 14:51:30refか、なるほど
愛してる
0251デフォルトの名無しさん
2008/01/27(日) 00:39:35個々のインスタンスは生成されないのって
違和感あるんだよなあ・・・
そんなことない?
0252デフォルトの名無しさん
2008/01/27(日) 00:45:24デフォルトコンストラクタしか呼べないから不便。
まあ boost::ptr_vector とかつかやええんやけども。
0253デフォルトの名無しさん
2008/01/27(日) 00:57:460254デフォルトの名無しさん
2008/01/27(日) 01:41:54構造体使えばok
0255デフォルトの名無しさん
2008/01/28(月) 00:00:220256デフォルトの名無しさん
2008/01/28(月) 00:44:37C++ではclassとstructの違いがないから、
new C[10]はCの大きさの10倍の領域を確保して、
10回デフォルトコンストラクタが呼ばれるの。
一方、Dではclassは常に参照型だから、
new C[10]はポインタ10個分の領域しか確保しないの。
ok?
0258デフォルトの名無しさん
2008/02/06(水) 16:33:500259デフォルトの名無しさん
2008/02/07(木) 08:27:18MSやめてくれ。
0260デフォルトの名無しさん
2008/03/01(土) 03:34:010261デフォルトの名無しさん
2008/03/01(土) 11:41:00ifブロックで使う必要ないんだったら条件式を逆転すれば?
ifとelse両方で使いたいならその書き方するもんじゃないし
0262デフォルトの名無しさん
2008/03/01(土) 12:18:43ifがelse節含め全域を覆っていると考えるか、
if節、else節、って感じで分かれてると考えるか、の違いだろな。
Dは後者だから、全域を覆いたいならそういうブロック文を書かないといけない、
ってところか。
0263デフォルトの名無しさん
2008/03/01(土) 20:03:57単なる設計思想の違いじゃないかな。
特に検討したことがなかっただけ、なんてオチだったらおもろいが。
0264デフォルトの名無しさん
2008/03/01(土) 23:22:24class 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
なんてのが出来たりした。(これが有用かはともかく)
0265デフォルトの名無しさん
2008/05/03(土) 22:42:490266デフォルトの名無しさん
2008/07/10(木) 13:15:34ある文字列に整数以外が入っているかどうかチェックしたいのですが
標準ライブラリで何かできますか?
toIntを使うと整数以外が入っている場合には例外を投げてくれるのですが
動作が止まってしまうので何か解決策が無いかと考えています。
何か良い方法があればよろしくお願いします。
0267デフォルトの名無しさん
2008/07/10(木) 13:18:36string reg = "12345";
std.regexp.find(reg, "[^(0-9)]"); // false
reg = "1235b3323s";
std.regexp.find(ptn, "[^(0-9)]") // true
というようにやっています。
0268デフォルトの名無しさん
2008/07/10(木) 13:28:40std.stringにisNumericという関数が存在しました。
0269デフォルトの名無しさん
2008/07/20(日) 22:14:27これを 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 を使っています。
0270デフォルトの名無しさん
2008/08/09(土) 03:11:34WinXPなら動くのにVistaでは動かないのですが
の仕様とかが変わっているのでしょうか?
0271デフォルトの名無しさん
2008/08/09(土) 03:12:10× の仕様
○ APIの仕様
0272デフォルトの名無しさん
2008/08/09(土) 03:27:290273デフォルトの名無しさん
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
0274デフォルトの名無しさん
2008/11/28(金) 20:29:370275デフォルトの名無しさん
2008/11/28(金) 21:00:48http://pc11.2ch.net/test/read.cgi/tech/1226631916/146
0276デフォルトの名無しさん
2008/11/29(土) 00:18:490277デフォルトの名無しさん
2008/11/29(土) 10:38:140278デフォルトの名無しさん
2008/11/29(土) 13:14:020279デフォルトの名無しさん
2008/11/29(土) 18:01:520280デフォルトの名無しさん
2008/12/05(金) 20:06:000281デフォルトの名無しさん
2008/12/09(火) 00:44:080282デフォルトの名無しさん
2009/04/08(水) 03:48:130283デフォルトの名無しさん
2009/09/02(水) 01:53:530284デフォルトの名無しさん
2010/01/07(木) 17:03:320285デフォルトの名無しさん
2010/01/16(土) 13:14:380286デフォルトの名無しさん
2010/02/15(月) 06:50:23owarannyo
0287デフォルトの名無しさん
2010/02/15(月) 06:53:180288デフォルトの名無しさん
2010/09/17(金) 23:20:48■ このスレッドは過去ログ倉庫に格納されています