[表示 : 全て 最新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)

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