[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/05 14:43 / Filesize : 200 KB / Number-of Response : 965
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part18



1 名前:デフォルトの名無しさん [2008/04/14(月) 15:16:22 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF)
ttp://dsource.org/ (dsource)
ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語)
ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
ttp://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)
ttp://www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games)

■ IDE
ttp://dronten.googlepages.com/dscite (DSciTE)
ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks)
ttp://www.dprogramming.com/entice.php (Entice Designer)
ttp://www.dsource.org/projects/descent (Descent)
ttp://www.dsource.org/projects/poseidon (Poseidon)

735 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:07:07 ]
DだとFizzBuzzを最小何文字で作れるんかな
ちなみに俺は140文字だった

736 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:18:48 ]
>>735
www.shinh.org/p.rb?FizzBuzz#D
に83バイトという記録がある。
いったいどんなコードなのやら。

737 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:24:29 ]
>>730 それは>>731から本望 QED
>>732 tangoがphobos準拠じゃないのが悪いんだよ
なんで自作ライブラリごときが標準ライブラリと共存できないんだってことだよw

738 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:33:21 ]
tangobosは?

739 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 20:40:02 ]
>>737
tangoはGCや配列キャストなどの言語の基幹部分も独自に持っていて、
phobosを置き換えるのが目的で作られてるから、共存できなくて当然。

740 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:39:01 ]
>>736
切り詰めて87文字
しかも数字が表示できない、中括弧使うと文字増えるしなぁー
import std.stdio;void main(){int i;while(i++<100)writef(i%3?"":"Fizz",i%3?"":"Buzz");}

741 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:44:04 ]
>>740
printf使えばもっと短くできるんじゃない?

742 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 21:55:04 ]
>>739
じゃあphobosが言語の基幹とライブラリの機能分担に失敗してる?

743 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 22:21:54 ]
>>741
これで99文字
void main(){for(int i;i++<100;)printf("%.*s%d",(i%3?"":"Fizz")~(i%5?"":"Buzz"),!(i%3&&i%5)?0:(i));}
こっちが別案(100文字ジャスト)
void main(){int i;char[]s;while(i++<100)printf("%.*s%d",s=(i%3?"":"Fizz")~(i%5?"":"Buzz"),s?0:(i));}

どっちもゴミが入るし83文字なんて…



744 名前:デフォルトの名無しさん mailto:sage [2008/07/13(日) 23:16:42 ]
>>732
D言語研究室にファイバあった。
前に試したけど、ファイバの部分だけならコンパイル通るようにするのはそれほど難しくない。

745 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 01:40:53 ]
d で windows アプリケーションを作るときに XP のビジュアルスタイルを当てる方法をおしえてください

746 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:13:17 ]
マニフェスト作ればいいんじゃないの。
詳しくしらんが。

747 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:26:09 ]
%03dとかやれる関数ってないっすか。

748 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 02:35:44 ]
std.string.format

749 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 03:12:25 ]
std.c.stdio.sprintfでおk

750 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 03:53:45 ]
tangobos で tango と phobos を同時に使うと、無駄に富豪的な気分がするぜ

751 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:10:02 ]
tangoではないんでしょうか。

char[] format(char[] format, ...)
{
Sprint!(char) sp = new Sprint!(char);
return sp.format(format, _arguments, _argptr);
}
とかやっても%がそのまま出力されちゃうんですが。

752 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 08:34:12 ]
>>751
tangoのフォーマットはC#と同じなのでそのようにやると良い。

753 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 10:31:52 ]
>>750
同時につかえるやつなんだ!しらんかった
両ライブラリの最新に対応してるのかなぁ
てかObjectクラスが違うはずなのに大丈夫なのかな



754 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 13:25:00 ]
tangoの方のオブジェクトが使われるはず。

問題が出たとしても、そういうことの解決をやるのがtangobosっていう擦り合わせのプロジェクトですよ。

755 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 13:43:00 ]
やっぱ、tangobosって方向性として間違ってるよなw

756 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 14:09:00 ]
>>745
main.exeが実行ファイルだとしたら、以下の内容をmain.exe.manifestとして保存して実行ファイルと同じフォルダに入れておけば、どんな言語で作ってもXPビジュアルスタイルになる。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
name="main"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>main</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>


757 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 15:07:12 ]
>>752
そうだったんですか。
ありがとうございました。

758 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 21:04:15 ]
こんなところ見つけた。
www5.atwiki.jp/yaruhara/pages/74.html


759 名前:デフォルトの名無しさん mailto:sage [2008/07/14(月) 23:56:39 ]
>>758
かなり気合入ってるな

760 名前:デフォルトの名無しさん [2008/07/15(火) 05:11:03 ]
ディレクトリ系の例外拾うと、システムの日本語が入ってるせいか文字化けするんですが、
誰か治し方しりませんか。

761 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:04:24 ]
連投ですいません。
auto http = new HttpClient( HttpClient.Get, "localhost/test.jpg" );
http.open();
HogeClass _this = this;
DataOutput stream = new DataOutput(new FileOutput( this.current.toString()~"hoge.jpg" ));
if( http.isResponseOK )
{
int len = http.getResponseHeaders.getInt( HttpHeader.ContentLength, int.max );

http.read( (void[] data)
{
stream.write(data); //○
_this.addPicture(data);//X
_this.last = data;//X
}, len );

}
stream.flush();
stream.close();
http.close();

Dlした画像のデータをvoid[][]dataで保存しておきたいのですが、
無名関数を出たとたんにDLしたデータが壊れてしまってるようです。

何が駄目なんでしょうか?

762 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:24:41 ]
dataをdupしたら解決しそうな気がする

763 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:36:56 ]
だめですた・・・・・



764 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 07:46:32 ]
voidはどうすればキャストとかできるんでしょうか。
中身をのぞいてみようと思ったんですが、何にもキャストができません。
あと、
無名関数内の引数dataのlengthは1716でlenは4323でした。

765 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 10:28:28 ]
Voidはキャスト可能でした><

766 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 11:03:14 ]
>>760
再現コード

767 名前:デフォルトの名無しさん mailto:sage [2008/07/15(火) 13:02:20 ]
>>764
無名関数が複数回呼ばれることを理解してない、ということかな?
無名関数内の引数dataは実際のデータが小分けになっている。
複数回呼ばれたときのdataを全部連結すると、お望みのデータになるよ。

768 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 01:25:29 ]
>>767
おおおおう。
できました。


ありがとうございました。

769 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 05:35:23 ]
FizzBuzz書いてみた
codepad.org/zAwWfbs7

codepadはmetastrings使えないんだな
tangobos使ってるみたいだがバージョンが古いんだろうか

770 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 11:58:19 ]
>769
std.string.toString() 使えば、toStr 要らなくね?

771 名前:デフォルトの名無しさん mailto:sage [2008/07/16(水) 13:12:32 ]
おこられたcodepad.org/jHEx9kA5

772 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:20:06 ]
配列の末端から取り出すのって皆さんどうやってますか?

773 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:45:37 ]
リバースして、ふぉーいーちにかけるか、ふぉーで配列の要素数-1から逆順でとる。
それ以外ってあるかなぁ。



774 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 15:52:21 ]
foreach_reverseがあるのに,なんでわざわざreverseするのん?

775 名前:デフォルトの名無しさん mailto:sage [2008/07/17(木) 22:21:55 ]
/home/d/dsss/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../libDG-tango-io.a(tango.io.Conduit.o): In function `_D5tango2io7Conduit7Conduit5errorMFAaZv':
Conduit.d:(.text+0x134): undefined reference to `_D5tango4core9Exception11IOException7__ClassZ'
Conduit.d:(.text+0x151): undefined reference to `_D5tango4core9Exception11IOException5_ctorMFAaZC5tango4core9Exception11IOException'
/home/d/dsss/lib/gcc/i686-pc-linux-gnu/4.1.2/../../../libDG-tango-io.a(tango.io.Buffer.o): In function `_D5tango2io6Buffer6Buffer5errorMFAaZv':
Buffer.d:(.text+0x1580): undefined reference to `_D5tango4core9Exception11IOException7__ClassZ'
Buffer.d:(.text+0x159d): undefined reference to `_D5tango4core9Exception11IOException5_ctorMFAaZC5tango4core9Exception11IOException'
collect2: ld はステータス 1 で終了しました
Command /home/d/dsss/bin/rebuild returned with code 65280, aborting.
Error: Command failed, aborting.

これはいったい何をぐぐったらわかるんでしょうか。

776 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 00:48:33 ]
>>775
ldの引数で、-lDG-tango-ioの右側に-lDG-tango-coreが書いてない、ということだな、そのエラーメッセージは。
ldはライブラリの依存関係に沿って引数を書かないとリンクエラーになる。

777 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 09:24:16 ]
>>773
うそだろ
v[$-1]じゃねーの!?

778 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 10:09:25 ]
>>777
おまえは何を言っているんだ。

779 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 10:43:50 ]
>>778
777じゃないが俺が代弁しよう。きっとこういいたかったに違いない。
while (v.length)
{
func(v[$-1]);
v.length = v.length-1;
}

780 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 11:24:50 ]
>>779
お前凄いな。

781 名前:777 mailto:sage [2008/07/18(金) 13:13:09 ]
>>778
ごめん、末端から「順に」取り出すのね。
勘違いしてました

>>779
エスパーすぐる!
フォローまでしていただいて・・・

782 名前:773 mailto:sage [2008/07/18(金) 16:54:03 ]
foreach_reverseって実装されてたのか。
ROMってるだけだと疎くなっちゃうね。正直すまんかった。

783 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 18:38:34 ]
かなり昔からある気がするが…



784 名前:デフォルトの名無しさん mailto:sage [2008/07/18(金) 20:09:01 ]
>>776
使ってるのはdsssなんですが、直すにはどの辺り調べるといいんでしょうか

785 名前:776 mailto:sage [2008/07/19(土) 00:21:44 ]
>>784
dsssは使ってないから、正確なところはわからない。
もし、読み込んでいるdsss.confにbuildflags=-llDG-tango-core -llDG-tango-io ... のような記述があるなら、書いてあるライブラリの順番が問題なので、それを依存関係に沿って(左のライブラリが右のに依存するように)並び替えればよいのだけど……。


786 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:25:32 ]
Cと比べてどっちが速いの?

787 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:40:32 ]
>>786
・両方ネイティブコード吐くし、どっちがあらゆる面で速いとは言えない。
・メモリ周りはGCある言語のほうが現実的に速くなるよ、と公式では主張されている
・コンパイル速度はDのほうが遙かに速い
・VC++なんかの商用コンパイラのほうが最適化は賢い(んじゃね?
・最適化部は同じだろうし、dmdならdmcと、gdcならgccと同じようなパフォーマンスになる(んじゃね?

下二つは適当。

788 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 22:51:01 ]
マイクロベンチマークでは、GCC相手でけっこう良い勝負をする
(ICCとかVC++になるとどうだろうか)
ただ最近のバージョンになると速度がやや落ちたみたい
ttp://shootout.alioth.debian.org/gp4/d.php
ttp://shootout.alioth.debian.org/debian/d.php

Dは本質的にかなり速度が出そうな言語ではある
コンパイラ屋が再設計したC++みたいなもんだから

789 名前:デフォルトの名無しさん mailto:sage [2008/07/19(土) 23:24:50 ]
>>786
向き不向きがあるけど、開発速度はDのほうが圧倒的に早い…
という比較があった気がした。
ある課題をいろんな言語で解くコンテストがあって、それでDがGCと契約のおかげでいい成績出したって内容だった気がする

790 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 02:07:08 ]
実行速度はライブラリの差が大きいだろうな
複雑な数値計算とかなると、もう

791 名前:デフォルトの名無しさん mailto:sage [2008/07/20(日) 16:41:09 ]
>>789
C++でどうしても生産性があげれなかったヘタレな俺
現状どうみても D>>C++ です。 本当にありがとうございます。

792 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 11:41:00 ]
IDE欲しくてDescentに挑戦したけど、どうにもコンパイルできなかった。
143あたりの手順も試してみたけどダメだった。結局makeに逆戻りしちゃった。
なんか導入しやすいIDEないかな?2.0系使えるやつ

793 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 14:32:18 ]
Poseidon



794 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 19:35:25 ]
gdc(mingw)0.24でgc_initを呼ぶと即座に落ちる。
_minitもundefinedと言われるし・・・

Win32 のサンプルが動かないとか心が折れそう。

795 名前:デフォルトの名無しさん mailto:sage [2008/07/21(月) 23:59:48 ]
>>794
WinMainを使わずにmainを使えばいい。
インスタンスハンドルが欲しければGetModuleHandleで得られるし。

796 名前:794 mailto:sage [2008/07/22(火) 00:15:22 ]
>>795
本当はDLLを作りたいんだけど、DllMainのgc_initでこけてたので、
前段階としてWinMainで実験してみて、うまくいってないという話。
DLL以外ならmainでいいんだけどね。
紛らわしくてスマソ。

797 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 13:08:40 ]
うぉるたんインタヴュー
www.techworld.com.au/article/253741/a-z_programming_languages_d


798 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 14:26:04 ]
> Ignore all the people who tell you it can't be done.
> Telling you it can't be done means you're on the right track.

らしいですよ。

799 名前:794 mailto:sage [2008/07/22(火) 20:06:30 ]
自己解決。
スレ汚し失礼しました。

800 名前:デフォルトの名無しさん mailto:sage [2008/07/22(火) 21:18:13 ]
自己解決したらちゃんと解決方法も書きなさい

801 名前:794 mailto:sage [2008/07/22(火) 21:21:15 ]
www.digitalmars.com/d/archives/D/gnu/creating_static_dynamic_lib_minit_remains_unresolved_2367.html

DigitalMarsで検索してたら普通にあった。

802 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 18:22:54 ]
www.vimeo.com/1364875
www.n-brain.net/
これ使ったことある人いるかな

803 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 18:26:45 ]
うお、まだ配布されてなかった
すまn



804 名前:デフォルトの名無しさん [2008/07/23(水) 19:58:27 ]
>>797
そういえばウォルタンの顔を見たことがなかったという衝撃

805 名前:デフォルトの名無しさん [2008/07/23(水) 21:59:17 ]
髭がないのがD言語普及の妨げになってるんだよな。

806 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:06:10 ]
懐かしいな
slashdot.jp/article.pl?sid=08/04/30/0830201

807 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:13:17 ]
やはりここはウォルたんにも髭を・・・・・

808 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:14:59 ]
>>806
ハゲである必要はないんか?

809 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:16:45 ]
ハゲると言語仕様が複雑に・・

810 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 22:19:03 ]
ウォルたんの頭髪大ピンチ!

811 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 06:13:13 ]
髭を剃ることを暗に明に強制されるような環境で、
好きに言語を設計するような仕事はできないという点では明察なんだよな。
その意味でウォルたんは好きに言語を設計してると思うから問題ない

812 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 06:36:53 ]
いくらなんでもこじつけだろと思ったが三行目で吹いた。
確かに好きに設計してるなwwww

813 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 09:34:07 ]
をるたん・ぶらいと



814 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 10:55:23 ]
うぉるたんって60才ぐらい?

815 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 12:46:45 ]
永遠の17歳

816 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:21:05 ]
>814
www.walterbright.com/ によると
「1979年にカリフォルニア工科大を卒業した」そうだから、
50代前半じゃね?


817 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 15:21:06 ]
caltechを1979に卒業と書いてあるので、
だいたい50〜55くらいの範囲だな

818 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 18:31:20 ]
仲いいなお前らwww

819 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 18:35:16 ]
この一連の流れを/.本家へ投稿してみたいところだな

820 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 22:48:31 ]
>>819 やめろww

821 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:00:46 ]
バージョンアップがこなさすぎる…
最後にリリースされたのいつだよ…

822 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 00:24:30 ]
一連の流れから分かったこと
・D言語に足りないのは髭

823 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:17:17 ]
じゃあ今度からD言語ではhogeの代わりにhigeを使えばいい、というわけか。

module walter.hige;
int hige(){ return 0; }



824 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:22:24 ]
じゃあDのマスコットキャラに髭つけようぜ

825 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:36:39 ]
かっけーじゃん

826 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 01:38:17 ]
髭の長さ=Dのバージョン

827 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 02:59:06 ]
Visual studio並のIDE欲しい・・・

828 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 03:46:48 ]
IDEがあればD言語かつる
っていうか今や普及にIDEは必須だぜ・・・

829 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 04:06:17 ]
うぉるタンはベンツ乗り?
ttp://www.walterbright.com/garage/index.html
うぉるタンのひーお爺ちゃんは日本に来たよ
ttp://www.walterbright.com/trip/chas.html
ttp://www.norwichfreeacademy.com/fileadmin/user_files/museum/Spring_2007.pdf
ttp://www.norwichfreeacademy.com/fileadmin/user_files/museum/Website_pictures/Winter_2007.pdf

830 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 09:45:47 ]
struct type
{
  typeof(this) opAssign(type other)
  {
    return this;
  }
}

int main()
{
  type[string] map;
  type hoge;
  map["name"] = hoge;//Error :ArrayBoundsError

  return 0;
}

何でエラーになるの?教えてエロい人!

831 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 12:03:32 ]
=演算子が関数呼び出しにハイジャックされてるからじゃねーの?

832 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 12:34:35 ]
>>821 この間2.017がでたところじゃないか

833 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 12:42:40 ]
VSのプラグインみたいなのでどこまでできるの?
前にインテリセンスをがんばってた人がいたけれど.



834 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 13:30:31 ]
IDEなんて不要。何の役にも立たない。
そんなのにリソース割かれてコンパイラの完成遅れられたら困る。

835 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 13:38:59 ]
完成・・・だと・・・ッ!?

836 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 13:54:21 ]
>>830
 map["name"] = hoge;

 map["name"].opAssign(hoge);
と解釈される。

map["name"]でエラー

837 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 16:20:50 ]
>>835 そもそも完成なんて概念は存在しないというのは言ってはいけないのかもしれんが言っちゃった

838 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 17:31:44 ]
>>834
別にウォルたんに作れとは言わんw

839 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:49:49 ]
>>835
>>797より
>Do you still consider D to be a language "under development"?
>  A language that is not under development is a language that is not being used.
>  D is under development, and will stay that way as long as people use it.
>  C++, Java, Python, PERL, etc., are also widely used and are still under development.
「IDE? もうあるじゃん」的な発言からも分かるように、なんとなく、
うぉるタンにはDをみんなに広めてやろうっていう野心が足りないんだな。

840 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 18:54:57 ]
生粋の技術屋なんだな

841 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:15:06 ]
うぉるたんには髭の生えた参謀役が必要なんだな

842 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:14:45 ]
Tango 0.99.7 Dominik released

843 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 00:18:53 ]
Dらしいboost::tupleを作ったはいいけど、コード補完のメンバ一覧が出たとたんIDEが落ちるw



844 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 00:27:03 ]
このスレよりもD言語について盛んに議論されてる場所ってある?
少なくともうぉるたんについてはこのスレが一番だと思うが。

845 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 02:08:44 ]
日本にはないと思う

846 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 02:25:29 ]
D1.028 phobos の std.cover の setDestDir(char[]) 関数なんだけど、

void setDestDir(char[] pathname)
{
 srcpath = pathname;
}

になってるんだけど、

 dstpath = pathname;

だとおもうんだ。
みんなの環境はどう?

847 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 03:09:49 ]
>846
2.017のPhobosでも同様になってる。
よく見つけた。Bugzillaへ行っとけ!

848 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:36:58 ]
>847
アカウント無いし、作りたくないから頼んだ。

dstpath を修正しても何の効果もないからなんとかしろーってのもいっといてplz

849 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 13:08:04 ]
めんどくさ
std.coverなんて使ってないしどうでもいい

850 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 20:00:08 ]
ながれにWWWW

851 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:46:01 ]
最近、D言語を勉強しようかなーと悩んでるんだが
D言語ラブな人にD言語の魅力を語ってほしい

ちなみに今までは、基本的にスクリプト言語(Ruby)でいろいろやってました
C言語は大学の演習のみ、C++やC#は未経験

852 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:57:33 ]
>>851
Rubyで間に合ってたならそっち使ってた方がいいと思う
D言語の凄まじさはC++をある程度やってないとわかりにくいんじゃないかな?

API叩きたいとかでも色々ポーティングしなきゃならない状況だからね〜


853 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:03:40 ]
ruby使ったこと無いから具体的に比べてはワカンネ(実際のところスクリプトメインに使ってて不満がないならrubyと比べてのメリットは少ないんじゃね? という気はする)
一般的な部分では、スタンドアロンの実行ファイルとか、ネイティブ吐く故の速度とかか。必要ないなら必要ないかなあ。

でも個人的に最大の魅力は更新待ちのwktk感。
既存のコード通らなくなる変更躊躇わないからなうぉるたん。標準ライブラリが壊れたりするんだぜ?
(ちなみに当方ややM)(でもこのスレに仲間は多いと思ってる)



854 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:31:44 ]
Ruby使いこなせてるなら、Rubyで十分。
スクリプト言語以外をそんなに触ってないなら、静的型付けとかの不自由さを感じるかも。

Dの良いところはスクリプト言語でもないのに、いろんな機能を使えるところ。他の言語に比べて多機能だと思う。


855 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:38:15 ]
>>851
俺の場合、WindowsとLinuxの両方で使うというのがあったから、Dという選択になった。

Windows環境だけというのなら、C#の方がライブラリその他安定していて、いいと思う。
散々言われていた起動の遅さも、いつの間にか気にならないくらい速くなってるし。

ただ、LinuxのmonoはD以上に地雷が多すぎなんで、マルチプラットホームならDかなと。
C++はコンパイル速度が速ければ使うんだが、Dの速さに慣れちゃうとその遅さに耐えきれなくなってしまう。

まあ、上記はC並に速く実行する言語が使いたいという前提あっての話だから、多少遅くてもいいというのであれば、Javaでもいいのかもしれない。

Dの欠点は標準ライブラリが信用できないこと。
標準ライブラリを自力で何とかできないとDを扱うのは難しい。


856 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:41:46 ]
>>853
> でも個人的に最大の魅力は更新待ちのwktk感。

ナカーマ

857 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:47:04 ]
通らなくなったコードを逐一直してまったくもううぉるたんたらおちゃめなんだからぁ的なアレ

858 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:53:39 ]
仕事仲間には絶対したくないけどねっ

859 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:12:52 ]
参照型をサポートする
タプルを関数から返せるようにする
opCastをまともにする

うぉるたん頼むからこのへん実装してくれ><

860 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:57:43 ]
>>859 参照型ってなんぞ

861 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:00:40 ]
int& a;

みたいなやつじゃね

862 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:17:44 ]
<俺:妄想>

int a;
ref(int) b = a; // 型コンストラクタ

ref(int) func(ref int p) { // 参照渡し・参照戻し
return p;
}

auto c = func(a); // is(typeof(c) == ref(int))

</俺:妄想>

863 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:18:38 ]
htodをもう少しどうにかしてほしいな。
手直し箇所が多すぎて、気軽にCのライブラリを使いたいと思えない。



864 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:31:45 ]
Tangoユーザの方0.99.7はどうよ?

865 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:36:28 ]
>>848-849
ttp://f17.aaa.livedoor.jp/~labamba/?BugTrack
とりあえず張っておくからw

866 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 05:14:19 ]
>865
まかせた

867 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 06:19:14 ]
>>864
とりあえずなんかMemory.diでエラーが出る。
ちょっとソースのぞいてみたらなんか明らかにおかしいところがあった

130: enum BlkAttr; : uint
131: {

868 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 08:29:18 ]
まったくDの開発陣は・・・テスト自動化しろよな
せっかく言語がunittestとかDbCとか用意してるのに全然活用してないじゃん
うぉるたんがたまにテスト通さないのは破壊的な変更しまくるからだろうけど

869 名前:851 mailto:sage [2008/07/27(日) 12:55:38 ]
いろいろな意見ありがとうございます
とりあえず、更新を待ってwktkする言語だというのは伝わってきた
面白そうなので少し触ってみようと思います

870 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:43:10 ]
もし、うぉるたんが死んだり、引退したりしたら、Dも終わるのか?
うぉるたんの跡を継ごうっていう人は出てくるのだろうか。

871 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:46:19 ]
きっとD++がでるよ。

872 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:18:50 ]
>>868
激しく同意。単体テスト用意しれと思うなぁ。
復帰テストはしているようだけど膨大だからかなりの時間かかってそうだし。

873 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:23:25 ]
単体テスト以前にコンパイルしてないんじゃ…



874 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:26:32 ]
>>862
それは
static int a;や
int* a;と似たような宣言で
ref int b; がスマートな気がする

その場合は
a == c って事でいいのかな

ポインタを使わないようにした代わりにこれがあればポインタの代用がかなり効きそうだな
GC周りに矛盾が生じないなら入れてほしいな

875 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:45:10 ]
>>874
 int* a;
はどっちかっていうと、
 const int a; // constは変数を修飾
よりは
 const(int) a; // constは型を修飾
に近いんじゃない?

それで、refは変数の情報な気がするから、ref(T)はいらないと思う。

876 名前:デフォルトの名無しさん [2008/07/27(日) 19:58:19 ]
dmd2.017 + dsource.org->Win32api Bindings
で、ウィンドウプロシジャの中から例外を投げて、
main関数に書いたcatchで拾おうとすると失敗するんだけど、こういうもんだっけ?

877 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:03:18 ]
>>876
そういうもん。

コードの流れは、
メッセージループ -> | user32 | -> ウィンドウプロシージャ
なんで、例外は戻ってこれない。

878 名前:876 [2008/07/27(日) 20:17:30 ]
>>877
即レス感謝。
前いけてた気がしたのは漏れの気のせいでした。
べんきょんなったす。

879 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:55:11 ]
えぇぇ、メッセージループの外のcatchで例外とれてるんだけどこれは何?

880 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:56:21 ]
writeflnとかで自動的にtoString()が呼び出されると、メンバのアドレスが変っちゃうんだけどなぜ?
明示的に呼び出せば、そんなことにはならなかった
アラインメントの問題?GCの問題?

881 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:01:53 ]
>>880
コード付きで頼む

882 名前:880 mailto:sage [2008/07/27(日) 21:34:07 ]
値渡しされてるだけだったorz 正直すまんかった

>>881
ちなみに双方向リンクリスト、つまりSTLのlistみたいなやつ

883 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:46:18 ]
Dの頭のままC#でdelegate使おうとしたら
いちいち宣言しなきゃいけないって面倒だなとおもた



884 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:49:31 ]
>>883
ラムダ式でおk

885 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:03:16 ]
C#3.0からFunc<,>とか使えるんじゃなかったっけ。

886 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 00:33:49 ]
GTK On Dって名前にすれば GOD ってライブラリ名にできるのにそういう風にしないのは
やはり向こうは日本と神の感覚が違うから気軽に使えないのかな

887 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 00:57:59 ]
こういう場合onっていう言い方は正しいのか?
あんまり聞かない気がする。

888 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:01:34 ]
じゃ featuring だ

889 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:04:05 ]
overとか

890 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:08:01 ]
ならopponだ
… oppon 〜は「…を〜と組み合わせて」という意味になる今作った単語

891 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:14:40 ]
oppai
なんでもできる証拠なの〜

892 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:28:19 ]
GTK of D

893 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 02:01:32 ]
Tango の 0.99.7 でバックスラッシュを含んだパスが蹴られるようになったけど、さすがに面倒だぜ。
import tango.io.Console;
import tango.io.FileSystem;
import Path = tango.io.Path;
void main(char[][] args) {
  auto dir = Path.parse(FileSystem.toAbsolute(Path.standard(args[0]))).path;
  Cout(dir).newline;
}
自分の実行ファイルのディレクトリのフルパスが欲しいとき、もうちょと短く書けないかな。



894 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 05:11:20 ]
www.digitalmars.com/d/archives/digitalmars/D/dwt/
dwtのはずなのにアナウンス
中身はちゃんと別みたいだけど

895 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:00:33 ]
std.openrjって、どうしてあるの?誰が使ってるの?
というか、動かないんだけど

896 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:15:14 ]
もうなくなるor/andなくなったんじゃなかったのか

897 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:49:37 ]
>893
記述が長ったらしい代わりにバイナリが小さくなるのがTangoの芸風でしょ。
ちなみにPhobosなら import path; して dirname(rel2abs(args[0])) だ。


898 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:53:45 ]
1.0 と 2.0 の違いって何?

C# の 1.0 と 2.0 ぐらいちがったりするの?

899 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:03:46 ]
dmd1 致命的なバグが無い限り更新されない
dmd2 前進的で素晴らしい変更によってソースを書き直す必要が出来る

このスレを読む限りMは2を使った方がいいらしいぞ

900 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:10:10 ]
最近はライブラリも2に対応してるし、1を使う理由ってあんまない気がするなあ。
安定性求めるなら他の言語を当たったほうがいいだろうし。

901 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:20:34 ]
DMDScriptが使いたいだけで1使ってます

902 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:26:29 ]
変更点そのものは、
www.kmonos.net/alang/d/2.0/features2.html
に出てる。

903 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:02:27 ]
>>900
喧嘩売られてるような気がするのは俺の気のせいだろうな
移行しない理由が聞きたいんだよな



904 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:04:10 ]
何が言いたいのかさっぱり理解できない

905 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:12:21 ]
gdc(mingw)をうまくビルドできるならば
2.0に乗り換えてみたいところだがね。
エラーが回避できなくてあきらめた。

906 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:38:52 ]
>>903
どう考えても気のせいです

907 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:39:36 ]
>>902
popenだけはdmd1にも入れてほしい

908 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:38:02 ]
ところでお前ら typeof(*this)って使ってるかな?
クラス名とどっちがいい?

909 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:51:29 ]
ジェネリックコードじゃなければクラス名の方がいい
時期尚早な過最適化は悪 by Effective C++ ?

910 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:57:08 ]
TangoやDWTが1にしか対応してないから2使えない、って人もいるんじゃね。

>909
"premature optimization is the root of all evil." なら、出典はKnuth様 (1974年)。


911 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:46:20 ]
先進的な変更で言語がよくなってそれと同時に自分のコードがかっこよくなる
この喜びが毎月のように得られるのはDくらい
それが私がDを使う理由・・・信じて

912 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:28:09 ]
static foreachまだなのかなあ。
そんな複雑な変更でもない気がするんだけど、
うぉるたんは他にやりたいことあるんだろうか。

913 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:13:48 ]
DMDってテンプレート再帰でタプル作るとホントすごいメモリ喰うな…



914 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 00:59:01 ]
D言語はアセンブリの夢を見るか

915 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 22:25:38 ]
gc切って、delegateぶん回したらすんごいメモリをくう・・・
あたりまえかもしれんが、scopeとかで回避できんから
すんごい困った


916 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:26:38 ]
www.dsource.org/projects/blaze

これのDemoすごいなあ

917 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:42:39 ]
あ、これ俺も遊んだwww
結構楽しいんだよなこれ

918 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 01:49:17 ]
PC初期に近いの面白さだよね。

919 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 02:24:57 ]
俺の1時間を奪う憎い奴だ

920 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:26:23 ]
template Hoge(){
if(true){}
}
void f(){
mixin Hoge!()
}
なんでif使えないの〜泣

921 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:34:29 ]
>>920
つ static if

922 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:35:46 ]
template mixin は宣言しか書けないのね

923 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 12:43:23 ]
Lisper
C++er


Der
なんちゃって、えへへ



924 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:02:18 ]
>923
PythonistaにならってDistaはどう?
すくなくとも発音はしやすいよw


925 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:41:25 ]
typeof(*this) opDot()
{
    return *this;
}


926 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:36:01 ]
痔主多?
やDなぁそんなの

927 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 15:33:24 ]
D Langer

928 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 16:08:02 ]
グローバル変数をスレッド間で共有できないのをディフォルトにしよう、
という案を検討してるらしい。
bartoszmilewski.wordpress.com/2008/07/30/sharing-in-d/

これだと現行のコーディングとはスタイルが随分かわっちゃうけど、
マルチスレッドの安全性を考えたら良い案だと思う。


929 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:00:35 ]
>>924
Dildo
発音しやすいよ

930 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:12:17 ]
1Der

2Der

931 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:17:02 ]
3ダー!!

932 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:32:21 ]
猪木?

933 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:00:29 ]
>>928
むしろグローバル変数いらなくね?
あと例えばプロパティはsynchronized付きになるとか(俺には善し悪しがよくわからんけど)
これからのマルチコアの世界に向けて最適化していった方がいいのかも



934 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:17:45 ]
locklessがもてはやされる時代に標準でsynchronized付きとか狂気の沙汰としか。

935 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:33:27 ]
そういうもんか
マルチスレッドプログラミングの安全性ももっとコンパイル時に保証できないのかな

936 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 22:24:48 ]
各スレッドが触る変数を確定できるかどうかが勝負という感じかなあ。
pureなら触る変数はプロシージャからのスタックの積み方で決まるから、
そのへんはもう少し楽になる気がする

937 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:14:52 ]
Martianじゃないか?いろんな意味で。

938 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:24:55 ]
static typeof(this) opCall(T...)(T args)
{
    return new typeof(this)(args);
}
newすら書くのが面倒。そんなあなたに

939 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:26:02 ]
pure判定が通るなら原則として大丈夫だと思う。副作用がないということだし。
もうすこし緩めるとスレッドローカル変数しか触らなければ安全だと思うが、これは未実装。

940 名前:924=928 mailto:sage [2008/08/01(金) 01:51:55 ]
>937
ああ、そっちの方が全然いいですね。

ところでGtkDのRC1が8月1日リリース予定なわけだがwktk


941 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:00:45 ]
こうか
template Constructor{
>>938
}
class A{
mixin Constructor;
}
void main(){ A x = A(); }
そういえばstructとclassをコンパチブルにできるのかなー

942 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 18:37:17 ]
構造体のコンストラクタってまだないの?

943 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:04:45 ]
>>942
ずっと無いと思うよ?
「構造体はPODであるべき」って頑なになってるから。

static opCallで代用するしかないんじゃね



944 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:20:33 ]
バグかなバグかな?

--- main.d ---
import func;
void main(){ line(); }

--- fund.d ---
void line(uint lineNum = __LINE__){ }


$ dmd main.d func.d
__LINE__
Internal error: e2ir.c 612

945 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 19:22:41 ]
いけね、ファイルを分けなくても再現した。

void line(uint lineNum = __LINE__){}
void main(){ line(); }

946 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:10:27 ]
2007年のカンファレンスで構造体にコンストラクタつけるとかなんとか言ってなかったか?
俺の記憶違いかな?

947 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:16:19 ]
リテラルあるしなあ……。

948 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 01:59:50 ]
gdcのsvnで手に入る一番新しいやつ。

std/c/windows/com.d

interface IUnknown
{
HRESULT QueryInterface(IID* riid, void** pvObject);
ULONG AddRef();
ULONG Release();
}

ではなくて、

interface IUnknown
{
static HRESULT QueryInterface(IID* riid, void** pvObject);
static ULONG AddRef();
static ULONG Release();
}

が正しいような気がする。
後者じゃないとビルドできないし。

949 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:25:36 ]
>>948
んなばかなあ

950 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:35:23 ]
>>948
何で前者でエラーになるのか知らないけど、staticは無いと断言できる。

951 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 14:44:56 ]
大体staticで何をカウントしてるんだ

952 名前:デフォルトの名無しさん mailto:sage [2008/08/02(土) 23:13:01 ]
comが何なのか良く知らないので、
エラー回避のためにstaticにしたんだが、
やっぱりおかしいのか。

libphobos/std/c/windows/com.d:240: error: '*LTHUNK0' aliased to undefined symbol '_D3std1c7windows3com9ComObject14QueryInterfaceMWPS3std1c7windows3com4GUIDPPvZi'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK1' aliased to undefined symbol '_D3std1c7windows3com9ComObject6AddRefMWZk'
libphobos/std/c/windows/com.d:240: error: '*LTHUNK2' aliased to undefined symbol '_D3std1c7windows3com9ComObject7ReleaseMWZk'

みたいなエラーがでるんだが、
LTHUNK0なんてソースのどこにも出てこないし謎。

試しにいろいろいじって、たまたまstaticにしたらうまくいったという話。

まあ、comプログラミングなんかしないから、
別に通ればなんでもいいのだが。

953 名前:デフォルトの名無しさん [2008/08/03(日) 13:39:36 ]
さっきちょっと思いついたんだけど変数の変更を一時的に禁止する様な機能ある?

const(hoge, fuga)
{
// hoge, fugaは変更禁止
}
// 変更OK




954 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 13:54:21 ]
void main() {
int hage = 42;

(const typeof(hage) hage = hage) {
writeln(hage); // 42
hage++; // error
}();
}

dirtyすぎる…

955 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 14:06:48 ]
最近ここで晒されるソースを見ても何がなんだかです。

956 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 14:17:12 ]
>>953
pureとか予約語になってるんだし,要望したら入れてくれるんじゃね?

957 名前:953 [2008/08/03(日) 14:41:00 ]
>>954
バグ回避目的なのに手段が真逆に向かっている様なw

958 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:09:29 ]
なんか、バグが云々って言ってたので、
よくわかりませんが、つたない英語で投稿してみました。

www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.bugs&article_id=14747

適当なので、怒られてたり、意思が通じてなかったりしたら
すいませーんっと。


959 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:14:46 ]
ああ、bugzillaに投稿とかのほうがよかったんだろうなぁとか
思ったけど、いいや。やる気ないので、スマヌです。


960 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 15:16:56 ]
これじゃ、何かいてるかわからないな。
>846
>847
>848

ここらへんの話です。
暑くて駄目だwww


961 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:13:57 ]
一時変数の名前はhigeを使ってください

962 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:43:12 ]
>>953
既出みたいなもんだけど関数のconst引数じゃダメなの?
class A{const void pp(){}}
void f(const A a){
a.pp;
}
void main(){
A a = new A;
f(a);
}

963 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:45:56 ]
値型でもこう
int i=1;
g(i);
void g(const ref int i){
  i++; // error
}



964 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 16:47:26 ]
sakuraiさんが久しぶりにDの話題してるの見たw






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<200KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef