トップページ⇒tech
1001コメント259KB

D言語 Part3

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
C, C++, Java, C# などのいいところを取って、さらにいろいろ付け足したような新しい言語。

・実行形式はネイティブコード
・言語仕様のコンパクトさよりも利便性を追求
・Windows, Linux用のコンパイラがある
・制御可能なガーベッジコレクション
・便利な動的配列
・契約による設計
・標準ライブラリPhobos
・開発環境DIDE

・今のところv1.0未満につき、未実装・バグはまだだいぶある。
・Win32APIを利用できるので、Win32アプリは作成可能。

DigitalMars D言語公式
http://www.digitalmars.com/d/index.html

リファレンス(JP)
http://www.kmonos.net/alang/d/


過去スレと関連サイトは>>2-10
0002デフォルトの名無しさんNGNG
過去スレ

D言語 (304)
http://f3.aaacafe.ne.jp/~null/cache/1073913528.html

D言語ドラフト一応読んだよ (Part 1)
http://pc2.2ch.net/tech/kako/1003/10036/1003674814.html

【良いとこ取り】D言語スレ【実用重視】(Part 2)
http://pc2.2ch.net/test/read.cgi/tech/1070169122/

関連スレ

D言語 vs Java
http://pc2.2ch.net/test/read.cgi/tech/1068829475/
0003デフォルトの名無しさんNGNG
関連サイト

D言語研究 - Wiki
http://cgi.f17.aaacafe.ne.jp/~labamba/index.php

DedicateD - ネットワークなどの周辺ライブラリ
http://int19h.tamb.ru/

やねうらお - ゲーム用ライブラリ作成プロジェクト
http://www.sun-inet.or.jp/~yaneurao/dlang/

D Memo - それぞれの言語仕様の説明とサンプルがある。
http://www.kmonos.net/alang/etc/d.php
0004デフォルトの名無しさんNGNG
Delphi!
0005デフォルトの名無しさんNGNG
Delphi言語のことでしょ?
0006デフォルトの名無しさんNGNG
これがリリースされたとして、
どういう分野で活躍が予想されるでしょう?
ご意見をおきかせください。
0007デフォルトの名無しさんNGNG
>>6
過去スレ嫁
00081NGNG
今更ながら、前スレを>>1に書いておいた方が分かりやすかった鴨。
次スレからよろしこ。

前スレ
【良いとこ取り】D言語スレ【実用重視】(Part 2)
http://pc2.2ch.net/test/read.cgi/tech/1070169122/
0009デフォルトの名無しさんNGNG
    
  /WW  
 (.,○∀・)  < ……ズヴァリ!
 く[ ⊂]      ここが新スレですな?
┏━━━━┓
┃      ┃
0010デフォルトの名無しさんNGNG
>>7
ていうか>>1嫁と言った方が早いのではw
0011デフォルトの名無しさんNGNG
>>1
乙
0012デフォルトの名無しさんNGNG
Delphi後継としてVCLを書き直したBorland Dが出たらなぁ(夢想)
0013デフォルトの名無しさんNGNG
>>12
その前に委譲入れてよ
0014デフォルトの名無しさんNGNG
Mixin! Minxin! Mixin!
0015デフォルトの名無しさんNGNG
Minxin!!
0016デフォルトの名無しさんNGNG
Mixinより委譲のほうが同じこと出来てより柔軟だぞー、と、物議をかもしてみるテスト
0017デフォルトの名無しさんNGNG
>>16
委譲の特徴・メリットを熱く語って下さいおながいします。
0018デフォルトの名無しさんNGNG
>>16
委譲をMixinで実装することも出来そうな気がするんだけど、どうよ?
0019デフォルトの名無しさんNGNG
まず、委譲は、委譲される側が、そのことを考えて作られてなくてもOKってことだな。
Mixinだと、Rubyならクラスじゃなくモジュールにしないといけないし、C++だと菱形継承に気をつけないといけない。
それから、識別子が衝突しない、動的に移譲先を変えられる、集約が実現できる、など。
言語的にサポートされてるのがDelphiとUvaしか無いってのはマイナスだが、これは自分が他に知らないだけかも。

…こんなもんでいいか?
18がmixinの利点を熱く語ってくれることを期待
0020デフォルトの名無しさんNGNG
>>http://pc2.2ch.net/test/read.cgi/tech/1070169122/992-993
バカとはなんだよう!
いいじゃねーか前置配列要素アクセス演算子。

だいたい今の宣言とアクセスの表記不一致の方が
よっぽど分かりにくいわ。

[y]*[x]int array;
(*array[y])[x] = ...

なんてアクセス、正気の沙汰とは思えんね。

int[x]*[y] array;
[x]*[y]array = ...

とどっちがスマートだよ。 えぇ?
0021デフォルトの名無しさんNGNG
両方やだ。
0022デフォルトの名無しさんNGNG
使うときにも、ポインタを後のほうに書くようにすりゃいいんだよ。
*だとまぎらわしいから^*にして
[y]^*[x]int array;
x = array[y]^*[x]

Cの設計者がこうすりゃよかったと後悔してたとか
0023デフォルトの名無しさんNGNG
>>22
いっそのこと宣言を逆にしたら。
ついでに ^* も @ にしちゃえ。

 moge @int = a&;
 hoge [y]@[x]int;

 moge@ = hoge[y]@[x];
0024デフォルトの名無しさんNGNG
>>22-23
> hoge [y]@[x]int;
> moge@ = hoge[y]@[x];

huga [x]@int;
huga[x]@ = hoge[y]@; //不正

最悪だろこれは。
Cの設計者は"Complex C"でも作ろうとしてたのか?
そんなCCやC++なんかより、やっぱりDですよこれからは。
0025デフォルトの名無しさんNGNG
いや、>>23見易いと思うぞ。少なくとも素のC言語よりはずっといい。

@を^にして、変数名と型の間に":"入れたら、Pascalになってしまうのがアレだが
0026デフォルトの名無しさんNGNG
//現状
int*[x] huga;
int[x]*[y] hoge;
*huga[x] = *hoge[y]; //不正

//後置
huga [x]@int;
hoge [y]@[x]int;
huga[x]@ = hoge[y]@; //不正

//前置
int*[x] huga;
int[x]*[y] hoge;
*[x]huga = *[y]hoge; //不正

同じ事だった。(´・ω・`)
0027デフォルトの名無しさんNGNG
>>19
ありがとう
委譲が便利だと思っていたのを俺だけじゃなかったのね⊃д`;)
0028デフォルトの名無しさんNGNG
C++に慣れた身としては違和感アリアリだが、宣言は後置の方がスマートだと思ったり。
例えば>>23を発展させればこんな風に書けるし。

 hoge : class( a ); // 宣言+オブジェクト生成(コンストラクタ実行)
 moge : [x]@class; // ポインタ配列の宣言
 moge[x] = a& // 配列アクセス(1)
 (moge + x) = b&; // 配列アクセス(2)
 moge[x] = new class( a ); // オブジェクトの動的生成
 moge[x]@ = a; // ポインタアクセス
 huga : [y]@[x]class( a ); // huga is array[y] of pointer to array[x] of class that initialize by a

あー、でも関数ポインタとかどう書くんだろ。
0029デフォルトの名無しさんNGNG
上で語ってる委譲というのは
ttp://hp.vector.co.jp/authors/VA028375/delphi/delphipascal_oo_implements.html
このページで解説されてる委任のこと?
0030デフォルトの名無しさんNGNG
前置に固執しているのは俺独りだな。

//前置
int[x]*[y] hoge;
[x]*[y]hoge = ...

//後置
hoge : [y]@[x]int;
hoge[y]@[x] = ...

要はひっくり返し方の話なんかね。

現状からの違和感から言うと、後置の方が自然だろうね。
もしかしたら、宣言の記述の仕方も直感にそぐうかも知れん。
オブジェクト指向的だからね。
0031デフォルトの名無しさんNGNG
DでRichEditコントロール使ったことある人いますか?
IME変換中の波線、下線が変換確定後も消えません。
Cで同様のコードを書いてもこれは再現しないし、どうしたらいいのか
ほとほと困っています。
0032デフォルトの名無しさんNGNG
前スレより落ちてちゃイクナイage
0033デフォルトの名無しさんNGNG
>>31
ソース見せてくれたら考えなくもない
003431NGNG
http://up.isp.2ch.net/up/afab2563f7b1.zip

ソースと一応バイナリーもつけました。
ソースの一部はどこかのサンプルから一部流用しています。
003531NGNG
このアップローだめちゃくちゃ反応鈍いですね。すみません(汗
0036デフォルトの名無しさんNGNG
>>31
原因はよくわからなかった

日本語入力後にCHARFORMAT2のdwEffectsとbUnderlineTypeがなぜか書き換えられるようなので
サブクラス化して阻止すれば回避できそう
0037デフォルトの名無しさんNGNG
>>31
自分の発言を引用するのもアレだがどうぞ。
前に枠がツカネーって事で調べてみたんだが、これにも関係してるっぽい。
Win2kではこれで直った。


D言語ドラフト一応読んだよ
http://pc2.2ch.net/test/read.cgi/tech/1003674814/

676 名前: 671 投稿日: 03/10/13 02:32

原因がわかった。
とりあえずここを読んでくれ。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/win9x/verdiff_2awj.asp

んで、気になって調べてみたところ、DMDが吐くEXEのPE Optional Headerの
MajorOperatingSystemVersionが1.0、
Major/MinorSubsystemVersionが3.Aになってた。
バージョンが4以上だとタイトルバー持ってれば勝手に
WS_EX_WINDOWEDGEスタイルを付けるらしいんで
そこを両方とも4.0に変えてみたらちゃんと枠がつきました。

まぁぶっちゃけ、EXEファイルのA0の01を04、A8-AAの03 00 0Aを 04 00 00に変えれば枠が付く。
もしかしたら漏れの使ってるDMDのバージョンが古いだけかもしんね。スマソ。
003831NGNG
>>36-37
どうもありがとやんした。上げてもらったURLも参考になりました。
とりあえず解決です。
0039デフォルトの名無しさんNGNG
D言語ブームはやっぱり終わったの?
0040デフォルトの名無しさんNGNG
もうちっとだけ続くんじゃ
0041デフォルトの名無しさんNGNG
むしろいつブームになんてなってたのかと
0042デフォルトの名無しさんNGNG
だってなぁ。
追加して欲しい機能が追加されるのがいつになるか分からん状態の上、
コンパイラのバグが不安だし、仕様もころころ変わる状況だし...。
とりあえず欲しい機能の提案はし切ったから、
あとは完成までひたすら待つしかないじゃん。
0043デフォルトの名無しさんNGNG
やることないならライブラリの移植でもしてろバカ
0044デフォルトの名無しさんNGNG
ブームって、この板ローカルだろ?
0045デフォルトの名無しさんNGNG
仕様がコロコロ変わる言語のライブラリ作ってもなぁ。
0046デフォルトの名無しさんNGNG
>>42
いつか Microsoft が C# にパク・・・
いや、取り入れてくれるさ。
0047デフォルトの名無しさんNGNG
D にあって、C#(2.0) に無いものって何があったっけ?
0048デフォルトの名無しさんNGNG
センスの悪さ
0049デフォルトの名無しさんNGNG
契約
0050デフォルトの名無しさんNGNG
debugとかversion とかあるんかい、C#は
0051デフォルトの名無しさんNGNG
>>50 そのあたりは、#ifdef でどうにでもなるっしょ。
0052デフォルトの名無しさんNGNG
言語レベルでインラインアセンブラサポート
0053デフォルトの名無しさんNGNG
>>51
debug 関係は属性でなんとかなるはず。
0054デフォルトの名無しさんNGNG
Walter
0055デフォルトの名無しさんNGNG
>>47
c#(2.0)ってネイティブコード吐けるのか
0056デフォルトの名無しさんNGNG
>>55 ネイティブとマネージドの違いがあることは誰でも知ってる。
0057デフォルトの名無しさんNGNG
つーかC#がネイティブ吐けたら最強なんだが。
Longhornになったらネイティブ並に速くなるのか??
0058デフォルトの名無しさんNGNG
.NET ってのは要するに Wintel からの intel 外しが陰の目的なんだから、
いまの intel ネイティブコードはエミュレーションで走るようになって逆に
遅くなりそう。
0059デフォルトの名無しさんNGNG
98年ぐらいはIntel>>MSぐらいだったのが
完全に出し抜かれた感じだね。今じゃMSが新しいバージョンを
リリースしてくれないことには、買い替え需要もないし。

で、intel ネイティブコードをエミュレーションってなんのこと?
バイナリトランスレーションとか呼ばれてるやつ?それと.NETに
どんな関係があるんだろ。説明しろ>58
0060デフォルトの名無しさんNGNG
>>59
.netを拡張したヤシ(WinFX)が新しいネイティブAPIになるんでしょ確か。
んでwin32APIはエミュレーションになって遅くなると。
0061デフォルトの名無しさんNGNG
>>58
>intel ネイティブコードはエミュレーションで走るように
これの説明になっとらんぞ
0062デフォルトの名無しさんNGNG
Win32はエミュレーションになるとは限らないんじゃなかった?
CDCの記事でどっかのニュースサイトが書いてたはず。
0063デフォルトの名無しさんNGNG
D Front End for GCC - Release 1b
http://home.earthlink.net/~dvdfrdmn/d/
もう知れ渡ってると思うけど、一応張っとく。

今、Solaris でコンパイル中。明日の朝出社したら実行ファイルができているはずだ。
これで、まともな GUIフロントエンドが完成したら、俺はもうDしか使わないぜ。
0064デフォルトの名無しさんNGNG
へえ、こんなのあるんだ。これ正規のパッケージとして
取り込まれたらDの認知度も上がる?それともobjc程度の扱い?
0065デフォルトの名無しさんNGNG
> D にあって、C#(2.0) に無いもの
あんまり挙がりませんな。C# 1.0 なら幾つもあるんだが。
やはりMSの開発速度には着いていけないのか……。
0066デフォルトの名無しさんNGNG
C/C++直接コンパイル可能
0067デフォルトの名無しさんNGNG
C# 2.0 の言語仕様についてまとまっているサイトきぼんぬ
0068デフォルトの名無しさんNGNG
C# 2.0 Specification
http://download.microsoft.com/download/8/1/6/81682478-4018-48fe-9e5e-f87a44af3db9/SpecificationVer2.doc
0069デフォルトの名無しさんNGNG
ワードもってないからワードパッドで読んでるんだけど
激しく読み難い。なんとか汁!>MS
0070デフォルトの名無しさんNGNG
>>69
WORDを使ってもやっぱり読み難いから安心汁。

C# 2.0 Specification から拾ってみた。
- Generics (Javaと違って、 new T() も可能)
- Anonymous methods (この書き方ができる ⇒ button.Click += delegate { listBox.Items.Add(textBox.Text); };
- Iterator の実装で、"yield return" が使える。
- partial class (クラスを分割して定義できる)
0071デフォルトの名無しさんNGNG
俺は、その言語の指標として、その言語の標準ライブラリが
いかに言語の能力を生かしユニークな作りになっているか
みることにしているので、それが無いDはまだ評価の段階にいたっていない感じ。
007271NGNG
Phobosってのがあるのね、しらんかった
0073デフォルトの名無しさんNGNG
>>71
Dはひたすら中庸に逝って欲しいけどね。
C++ではなくC with class+GCを素直にやってくれればそれでいいよ。
0074デフォルトの名無しさんNGNG
warota
0075デフォルトの名無しさんNGNG
partial classはMixJuiceに対抗したのかな
それらに対してDはmixinで対抗
0076デフォルトの名無しさんNGNG
Dのアプリを実行するのに、環境はいらないの?
JAVAではVM,C#では、.NETにあたるものは必要ないのですか?
ガーベジコレクションとかは、なにがやるのでしょうか?
0077デフォルトの名無しさんNGNG
コンパイル時にガベージコレクションを実行するコードが挿入されるんじゃないかな(適当)
0078デフォルトの名無しさんNGNG
>>76
一応OSが必要だねぇ
0079デフォルトの名無しさんNGNG
Subject: Delegate and function unification
> Is this planned for 1.0 ? So we can intercahnge them etc ?

No, it'll be a 2.0 feature. It's conceptually simple, but there are a lot of
tricky details to get right.

うーん。。。
0080sageNGNG
yamlは、やめると読んでしまいます。
いい発音の仕方を教えてください。

0081デフォルトの名無しさんNGNG
>>80
イェイモー
0082デフォルトの名無しさんNGNG
DIDE起動時に勝手にIEが開くんだけどなんとかなりませんか
0083D 0.82NGNG
What's New for D 0.82
Mar 28, 2004
Bugs Fixed
- Some cases of forward referenced classes are now handled.
- Illegal recursive alias declarations now correctly diagnosed.
- Erroneous anonymous struct member offsets within unions fixed.
- Fixed problem with array initializers for consts.
- Fixed bug with intrinsics.
- Can now slice a void[].
- std.date: fixed dst calculation for zones with no dst.
- Fixed bug with nested delegate literals.
- Fixed overload inheritance bug with function aliases from base classes.
- Added files gnuc.h, mem.h, mem.c, port.h, enum.h, and enum.c to the \dmd\src\dmd.
- Fixed seg fault on forward reference to template.
- Fixed std.date.getUTCtime() for linux.
0084デフォルトの名無しさんNGNG
hashをforeachするさい呼びだされるkeyの順番を制御できる?
構造体の配列をソートする際ソート順を制御できる?
0085デフォルトの名無しさんNGNG
www.dsource.org

DWT A port of the SWT (Standard Widget Toolkit) GUI Library
完成が待たれます。
0086sageNGNG
import std.string;
void main()
{
char[][char[]] hash;
hash["Data1"]="_Da1";
hash["data3"]=" da3";
hash["data2"]="_da2";
hash["data1"]=" da1";
hash["Bata1"]="_Ba1";
foreach(char[] key,char[] value;hash)
printf("%.*s %.*s\n", key, value);
printf("\n");
foreach(char[] key;sort(keys(hash)))
printf("%.*s %.*s\n", key, hash[key]);
}
0087sageNGNG
char[][] keys(char[][char[]] hash){
char[][] array=new char[][hash.length];
int length=0;
foreach(char[] key,char[] value;hash)array[length++]=key;
return array;
}
char[][] sort(char[][] array)
{
char[][] array1=new char[][array.length];
int length=0;
foreach(int key,char[] value;array){
int i=0;
for(i=0;i<length;i++)
if(std.string.cmp(array[i],value) > 0) break;
for(int j=length-1;j>=i;j--)array1[j+1]=array1[j];
array1[i]=value;
length++;
}
return array1;
}
0088デフォルトの名無しさんNGNG
>>85 できそうにもないけどな
0089デフォルトの名無しさんNGNG
>>85
なんだそれ?
EclipseのSWTのD言語版?
0090デフォルトの名無しさんNGNG
あのSWTのソースってどうよ、漏れは激しく読みづらい。
あれが限界なのか? もっと気合入れて作れないものかと。
0091デフォルトの名無しさんNGNG
>>90
よみづらいって具体的には?
0092デフォルトの名無しさんNGNG
DTLまだぁ?
0093デフォルトの名無しさんNGNG
OTLまだぁ?
0094デフォルトの名無しさんNGNG
_noまだぁ?
0095デフォルトの名無しさんNGNG
orzまだぁ?
0096デフォルトの名無しさんNGNG
module p1;
import std.c.stdio;
int main(){
float f1;
if(f1 == f1)
printf("f1 == f1");
return 0;
}

printfにいかないのは仕様だっけ?
0097デフォルトの名無しさんNGNG
>>96
仕様みたいだね。

http://www.kmonos.net/alang/d/property.html
> 浮動小数点数型のプロパティ
>
>   .init  初期値 (NaN)

http://www.kmonos.net/alang/d/expression.html
> 等値式
>
> 浮動小数点数の場合は多少複雑です。-0 と +0 は等しいと判定されます。
> どちらか一方でも NaN であれば、 == も != も結果は false になります。
> それ以外の場合は、ビットパターンで比較されます。
0098デフォルトの名無しさんNGNG
未初期化変数はNaN(Not a Number)で初期化され、
比較式にNaNが含まれる場合比較対象に関わらず偽となる。
だったかな? 仕様書確認せず記憶だけなのでフォローよろ。
まあしかし直感に反するフローなのは確かだな。

そいや===演算子でNaNと比較したらどうなるんだろ。
コンパイラ手元にないから確認できねえや。
0099デフォルトの名無しさんNGNG
うむ。なぜだか知らないが時間的に前にフォローが入っているようだ。>>97thx
0100デフォルトの名無しさんNGNG
「!=」でtrueになった……?

バグか バージョンが古いかどっちかか
落とし直しー
0101100NGNG
sage忘れ……
0102デフォルトの名無しさんNGNG
平衡木によるテンプレートコンテナクラス(std::setのようなもの)のDでの実装ってどっかにある?
なかったら自分でつくる(パクル)けど。
0103デフォルトの名無しさんNGNG
>>102
void[value_type] では不満?
0104102NGNG
>>103
不満だなぁ。それだとforeachとかで順序が指定できないよね。
begin, ++, endの操作(イテレータ)が欲しいわけ。
もし出来るんだったら教えてくらはい。現状先頭から順番に巡回できればいいです。
ちなみに配列に変換してソートするとかは無しね(;´Д`)
0105102NGNG
なんか上の文章おかしいな。
foreachで呼び出される順序を指定できる仕組みが欲しい。
常に指定した順序で整列してて欲しい(頻繁に挿入〜巡回するので)。
ただそれだけです。
0106デフォルトの名無しさんNGNG
[C++]void fuck(const string& str);
D言語でこの関数と等価な関数はどう書いたらいいのでしょうか・・・
[D]void fuck(char[] str);
これだとただのコピーになっちゃって;;
0107デフォルトの名無しさんNGNG
inoutとか。
010886NGNG
>>84
import std.string;
void main()
{
char[][char[]] hash;
hash["Data1"]="_Da1";
hash["data3"]=" da3";
hash["data2"]="_da2";
hash["data1"]=" da1";
hash["Bata1"]="_Ba1";
foreach(char[] key,char[] value;hash)
printf("%.*s %.*s\n", key, value);
printf("\n");
foreach(char[] key;hash.keys.sort)
printf("%.*s %.*s\n", key, hash[key]);
}
これでできる。仕様ちゃんと読むべし。
0109デフォルトの名無しさんNGNG
static int[char[]] h=["aa":1,"cc":2];
で
Error: cannot use array to initialize int[char[]]
とエラーになるのは仕様ですか?調子わる
0110デフォルトの名無しさんNGNG
>>109
連想配列についての初期化の記述無いっぽいけど。出来ないんじゃ
0111デフォルトの名無しさんNGNG
なんとかマガジンにやねうらお氏の紹介記事が載ってたな
0112デフォルトの名無しさんNGNG
>>111
Software Design (ttp://www.gihyo.co.jp/magazines/SD/contents)
かな
まだ読んでないけど、どんな感じだった?
0113デフォルトの名無しさんNGNG
自作のCライブラリでもDからそのまま使えるの?
0114デフォルトの名無しさんNGNG
そのまま、というか、宣言してやれば。
0115デフォルトの名無しさんNGNG
import c.mylib;って?
0116デフォルトの名無しさんNGNG
>>115
そのmylib.dを書くのが面倒なんだよな。
0117デフォルトの名無しさんNGNG
なるほどね。Cのソースをそのまま読める訳じゃないんだ。残念。
0118デフォルトの名無しさんNGNG
要するに.hから.dに変換するツールがあれば無問題なわけだ。
0119デフォルトの名無しさんNGNG
>>112
「なんとかマガジン」ってひとっつも当たってないところに笑った

俺もそれ立ち読みした。
ゲームを開発するときの言語を比較して、Dはそこそこ便利ですよ、
ただ、まだαですよ、最終的な判断は皆さんにおまかせします、
っていう内容だったような。当り障りの無い言語紹介かな。
0120デフォルトの名無しさんNGNG
>>117-118
D言語用のswigがあったような気がする
0121デフォルトの名無しさんNGNG
ドラフトの段階から乗り換える事を決めていた。
今のα仕様だけど、なかなか読んでて面白いね。
typedefとaliasのおかげでコードがすっきりしそう。
0122デフォルトの名無しさんNGNG
split("aaa","c");
を
"aaa".split("c");
のようにも書ける仕様はどこに書いてありますか?
0123デフォルトの名無しさんNGNG
>>122
上は関数で下はstringのメンバ関数でないかい?
0124デフォルトの名無しさんNGNG
とりあえずやねうらおってのに萎えた
0125デフォルトの名無しさんNGNG
そのやねうらお氏はいまC#にご執心のようだ。
0126デフォルトの名無しさんNGNG
Javaよりこっちの方がいいな
まだリリース版出ないのかねぇ
0127デフォルトの名無しさんNGNG
>>123
print(char[] a){
printf("%.*s",a);
}
"aaa".print();
と、第一引数のメンバ関数のように使えちゃうみたいなんだけど、なんでかなと。
0128デフォルトの名無しさんNGNG
import std.stream;
void print(char[] s)
{
stdout.writeString(s);
}
int main()
{
"aaa".print();
return 0;
}
面白いけど使いそうにない
0129128NGNG
このタイミングで重複とは_| ̄|○
0130デフォルトの名無しさんNGNG
それってstringのメンバ関数とコンフリクトしたらどうなるんだ・・・
0131デフォルトの名無しさんNGNG
>>127
>第一引数のメンバ関数のように使えちゃうみたい
仕様読んでる途中だからよーわからんけど、「みたい」」というか、そう最適化されるんでないの?
Dの配列はCと違って、サイズ情報などを保持するオブジェクトだから、第一引数に属するメソッドとしたほうが効率的かなと

import perl5; //あるのか知らんけど
char[] str = "諸行無常".u2s; //UTF-8からSJISへ

みたいに明示的にClass化しなくても、Moduleで簡単に骨太にできる。
コード上はClassっぽく扱っていても、実際はコンパイラが等価に書き換えるだけで実行時コストの削減に繋がる。
0132修正NGNG
>>131
× 第一引数に属するメソッドとしたほうが効率的かなと
○ 第一引数に属するメソッドと見せかけたほうが効率的かなと
0133131NGNG
サンプルの上と下とで言ってる事が逆だな俺w
ようは継承やインスタンス生成のコストを極力減らせる仕様なのでは?と。
0134デフォルトの名無しさんNGNG
開発者推奨のコードスタイル、ハンガリアン記法のコメントにワロタ
0135デフォルトの名無しさんNGNG
Dコンパイラ、専用のバグ報告場所作った方がいいと思う今日のこの頃。
0136デフォルトの名無しさんNGNG
英語出来ないからあってもなぁ
0137デフォルトの名無しさんNGNG
出来なかったらこのスレか別のDコミュニティに投げて代わりに訳して貰うとか。
0138デフォルトの名無しさんNGNG
ver.0.82が最新なの?
ネットワークプログラミングは出きる?
0139デフォルトの名無しさんNGNG
>>138
ココ見るとver.0.82が最新だーね。
http://www.digitalmars.com/d/changelog.html

ネットワークプログラミングってどの辺までを求めとるか分らんが、ソケットから書くのが苦痛でなきゃ
できるよん。実装例挙げるとこんなのとか。
http://user.ecc.u-tokyo.ac.jp/~s31552/wp/attohttpd/
0140デフォルトの名無しさんNGNG
D言語のロゴが(゚Д゚)に見える
0141デフォルトの名無しさんNGNG
ゴルァ言語
0142デフォルトの名無しさんNGNG
言語のバグを見つけられるなんてすごいね
俺なんか自分のバグすら取るの大変
0143デフォルトの名無しさんNGNG
>>139
ありがとう。乗り換えるべく勉強してみるよ。
0144デフォルトの名無しさんNGNG
>>142
自分のバグですら取るのが大変なのに、言語のバグが原因だったりするから、
 現状では使い物にならない ⇒ 熱が冷めた
になったんだと思われ。
0145デフォルトの名無しさんNGNG
D言語はもう熱が冷めたんですか?
ってかやねうらおさんですか?
同スレッドにあるとGCが発動してしまうバグ
これが何とかならないとD言語は使い物にならない
とか言ってましたけど
あれは直ったんですか?
0146デフォルトの名無しさんNGNG
局所的に熱かっただけかと
0147デフォルトの名無しさんNGNG
というか>>144の主語は誰のことだ
0148デフォルトの名無しさんNGNG
>>145
>同スレッドにあるとGCが発動してしまうバグ
意味がわからない。
別スレッドでさえもnewしないようなスタイルは難しいから、
結果としてGCが走るのを抑えられない(gc.disableが未実装)
ってことかなー
0149デフォルトの名無しさんNGNG
スレッド単位でGCが動いてしまうってことでは?
Linuxだったかな、見かけ上はスレッドだが、
負荷はプロセスと何ら変わらないってOSもあったり。

まだまだOS互換性が取れていないのでしょう。
0150デフォルトの名無しさんNGNG
GCを制御するほど高度なプログラムなんて打ったことがないよ
どんなときに止める必要があるんだろう
0151デフォルトの名無しさんNGNG
パフォーマンス最優先の時
0152デフォルトの名無しさんNGNG
>>150
Dリファレンスの翻訳サイトのガベージコレクションの項に書いてあるよ。
0153デフォルトの名無しさんNGNG
>>145
>D言語はもう熱が冷めたんですか?

彼はゲーム作成で飯を喰っている人間だから、
GC や Thread の持っている機能(というよりは、
それらが達成しようとしている目標)に
非常に魅力を感じているのであろう事は想像に難くない。

しかし、逆にそうであればこそ、
それらが内包しているダークサイド面も十分に承知しているのだろう。

・・・青い鳥症候群だな(通常の意味合いとは違うけど)。
0154デフォルトの名無しさんNGNG
でもさまざまなゲームが作れてこそ
今の時代はプログラミング言語だよな

常にリアルタイムで画面を再描画しなくちゃいけないゲームや
またはパズルゲームなど
魅せ方が工夫できればできるほど
そして、それを楽に作れれば楽に作れるほど
有用なプログラミング言語と思われがち
0155デフォルトの名無しさんNGNG
熱が冷めたというより、「まだβなのね」という意見なのでは?
0.82ならαというよりβだよね?
0156デフォルトの名無しさんNGNG
モジュールをインポートするためにヘッダ作ってプロトタイプ書いて、、、って手間が省けるってだけでDマンセーなのは私だけでしょうか?
市販のC++ IDEとか使ったことないけど、自動でヘッダ作ってくれたりするんかな?
0157デフォルトの名無しさんNGNG
>>156
C/C++が腐ってるだけで、Dに限らず他のほぼ全ての言語ではそんな必要は無い罠
0158デフォルトの名無しさんNGNG
おいおい、他言語でもヘッダファイルは必要だぞ。
C/C++ではさらにインポートライブラリも必要だが。
0159デフォルトの名無しさんNGNG
結局、楽に作れるかどうか?
資料は充実してるかどうか?

プログラム言語が流行るかどうかなんて
そういう単純なところだよね
0160デフォルトの名無しさんNGNG
STL欲しい
0161デフォルトの名無しさんNGNG
>>160
何か落ち込んでるのかと思った

最近OTL見すぎたかな
0162デフォルトの名無しさんNGNG
>>161
最近はすぐ落ち込む人多いね
顔文字使う感覚なんだろうけど
0163デフォルトの名無しさんNGNG
ネタだよなぁ

鬱だとかすぐ言われるよりはマシ
0164デフォルトの名無しさんNGNG
>>152
ありがとう、読んで見たけどよくわからなかったよ
0165デフォルトの名無しさんNGNG
>>156
その手間は全体からすると大した問題じゃないかもしれない。
漏れはまともなモジュール機構とプリプロセッサ排除の恩恵(?)で、
コンパイルが激速なのが嬉しい。
GCも付いてるしかなり楽できるんじゃないかと思う。

>>159
同意。言語の表現力で人気がでるなら、
最近の関数型言語(Haskell、Concurrent Clean)のスレが
ム板に溢れているはずだ。
0166デフォルトの名無しさんNGNG
>>158
んー…Ada/Modulaあたりはモジュール化されてるとはいえヘッダ「ファイル」があったり、
Pascalは同じファイル内とはいえプロトタイプ宣言が必要だったりするけど、
JavaにしろC#にしろHaskellにしろ最近の言語は大抵はヘッダもプロトタイプ宣言も要らないよね
0167デフォルトの名無しさんNGNG
>>164
FPSを常に30なり60なりに保つには、GCによるメモリ回収は切っておかないといけない。
その理由は、メモリ回収中はプログラムを完全に停止してしまうから。
だからゲームプレイ中はGCをスリープさせて、スコア画面中に手動でメモリを回収する必要が在る。
0168デフォルトの名無しさんNGNG
>>167
MMORPGのような、シーン切り替えがいつ発生するか分からないようなのは
GCを呼び出すタイミングが難しいですね。
結局のところGC付きの言語ででpressureの大きいリソースを扱う場合は
Cacherを通して管理、巨大なバッファを確保したりする際は、
アロケーターでGCのスキャン対象外にして、自分でメモリー管理。
要するにC的なプログラミングをしなければならない。
と、やねうらお氏が言ってました。

ちょっとエロイ人に質問。
保守的GCってintやlong型に適当な値をつッこんだら
ポインタ値と勘違いされてその部分が解放されないってこと、あるの?
0169デフォルトの名無しさんNGNG
>>168
言語の目的として
ポインタは使用しないこと

その理由として
int *i = new int;
int k = i;
とされてもGCは面倒見切れないから

この場合はポインタiがアドレスを放棄した時点でGCは回収にリストに入れます
0170デフォルトの名無しさんNGNG
>>168
MMORPGは寧ろ頻繁にGCを動す思いますよ。
下手にリークメモリを貯めるとその分復帰に時間が掛かりますので。
チャット組のために一定時間ごとにこまめに動くんじゃないかな。
0171デフォルトの名無しさんNGNG
その場合はGCじゃないだろ
0172デフォルトの名無しさんNGNG
そういうゲームってGC動いてないんじゃない?
こまめに動くよりも自分で解放するほうが処理とかも楽そうだし
0173デフォルトの名無しさんNGNG
>>167
よくそういうことがいわれるが、どのくらい止まるかってことには、
全然触れられないんだよな。

たとえば、1frame内で1msec以内なら(十分遅いけど、一応は)問題ないし、
逆に100msec止まってもらっては当然困る。

GCによるメモリ回収は短時間で終わるから、
ゲームには十分向いているなんて推測もできる。

実際どうなのよって話。
0174デフォルトの名無しさんNGNG
例えば2Mの画像を破棄したとき
どうなる?
0175デフォルトの名無しさんNGNG
>>174
deleteで破棄すれば強制回収という仕様があったような。
0176デフォルトの名無しさんNGNG
どうでもいいけど
D言語でアナルオナニーしていいですか?
0177デフォルトの名無しさんNGNG
>>176
どうやってするのかわからないので、実況しながらお願いします。
0178デフォルトの名無しさんNGNG
D・V・D!!(ry
0179デフォルトの名無しさんNGNG
>>173
>どのくらい止まるかってことには、全然触れられないんだよな。

GC がどのくらい止まるかは、そのアプリケーションの規模によって
大きく変わる。

もしもアプリケーションを拡張しているうちに、GC による
遅延の問題が発生し始めた場合、もう後戻りはできない。
小手先の最適化など何の役にも立たない致命的な欠陥なので、
結局はそのコードを全て捨て去り、結局全てリライトしなくては
ならなくなる。

プログラマにとってこれほど怖いものは無い。
0180デフォルトの名無しさんNGNG
一部のみGCを使えればね
0181デフォルトの名無しさんNGNG
>>179
そのためのversionやdebugなどなど
コンパイル時のパラメータによって出力が変わるようにしてるんじゃないかな?
0182デフォルトの名無しさんNGNG
>>179
わかった
予測できないから、使えないってことね

それが、実験して得た結論なら別にどうこういわん
0183デフォルトの名無しさんNGNG
>>182

>http://d.hatena.ne.jp/yaneurao/
>
>2004-04-10 いまどきのGC
>
>まあ、どのみちアプリケーションが肥大化してきたときに
>保守的なGCではどうしようもいかなくなる。
>保守的なGCが使われる限り、リアルタイム性が問題になる
>大規模なアプリは書けないんじゃないかとも思う。

是非、彼にもそう言ってやってくれ。
0184デフォルトの名無しさんNGNG
おかしな話だ。D言語は中・大規模なソフトウェア開発のために作られてる。
0185デフォルトの名無しさんNGNG
メモリリークと戦うか挙動不審なGCと戦うか、非常に悩むところだ・・・
0186デフォルトの名無しさんNGNG
>>179
Incremental GC でも話にならないかね?
0187デフォルトの名無しさんNGNG
大き目の共用体を含むクラスでも設けて、必要なくなったらdeleteで強制回収。
リアルタイム処理につかうメモリを全てそのクラスで扱えばいいような気が。
0188デフォルトの名無しさんNGNG
>>168-169
DのGCはint型でもそこにポインタ値らしきものが入ってたら解放しないんじゃ?
0189デフォルトの名無しさんNGNG
メインスレッドで毎回resumeAll呼び出しじゃだめ?
0190デフォルトの名無しさんNGNG
>>186-187
そんなやり方は、皆が承知している。

で、その上で、D言語の Evangelist は
「保守的な GC が使われる限り、リアルタイム性が問題になる
大規模なアプリは書けないんじゃないかとも思う」
という判断を下した訳だ・・・

結局の所は個人の主観の問題、というか、
アプリケーション開発というものに対するポリシーの問題だよ。
0191デフォルトの名無しさんNGNG
>>179
全部rewriteしなくてもいいだろうに。
0192デフォルトの名無しさんNGNG
いや書けるでしょ。
その書き方は嫌だから無理ってのは意味不明。。。
0193デフォルトの名無しさんNGNG
ABA Gamesさんとこのゲームはシューティングだからまさに
FPS維持が問題になるけどそんなに問題になってるようには見えないが、
GCまわりはどうなってるのかな?
0194デフォルトの名無しさんNGNG
大量のメモリさえ確保できれば、DにGCだからという欠点はないよ。
DのGCにバグがあるのとは、また別の話 :-)
0195デフォルトの名無しさんNGNG
つまりGC自体がバグだと言いたいのは良く解るんだが
そんな物はつけなくてもよろしいのでは?
0196デフォルトの名無しさんNGNG
GCがあるほうが開発コストが安いからねぇ。
0197やねうらおNGNG
>>193
ABAさんのゲームは、ゲーム中(リアルタイム性が必要とされる部分)では、
コーディング上のミスが無い限りは、newは1回も呼び出してないはずです。
(要するにGCは一切呼び出されないです。)
0198デフォルトの名無しさんNGNG
その携帯のJAVAみたいな組み方はすげーな
0199デフォルトの名無しさんNGNG
>>198
だって元々そういうJavaアプリをバリバリ書いてた人だもん。
↓下記参照。
http://d.hatena.ne.jp/ABA/20040326#p2
0200デフォルトの名無しさんNGNG
やねうらおの言い訳 age
http://d.hatena.ne.jp/yaneurao/
>2004-04-13 いろいろ考え中
0201200NGNG
アゲ間違え sage
0202デフォルトの名無しさんNGNG
>>112
激しく遅レスですまぬ。
Software Designの記事を読んで思ったのだが、
ひょっとしてやねうらおは、C#の using を構文糖と気づいていないのか?
0203デフォルトの名無しさんNGNG
リアルタイムで動かすならば
常に回収をすればいいわけか
0204デフォルトの名無しさんNGNG
>>203
そうだね。
まったくしないか、気づかせないほど細かく回収するかのどっちかだ。
0205デフォルトの名無しさんNGNG
>>200
Dで大規模プログラムの仕事なんて出すわけないじゃない
β仕様のβコンパイラで何を作れとw

茶碗をチンチン叩きながらマターリ待ちましょう
0206やねうらお ◆.NZe9R3gKs NGNG
>>202
>ひょっとしてやねうらおは、C#の using を構文糖と気づいていないのか?

さすがにそんなことは..。

ildasmで見ればtry〜finallyでDispose呼び出すのと同じコードが
生成されていることは明らかなので。
0207やねうらお ◆.NZe9R3gKs NGNG
>>205
> Dで大規模プログラムの仕事なんて出すわけないじゃない

私の原文が少し紛らわしかったかも知れませんが、
「GC付きの言語の大規模開発を経験してみたい」という趣旨で、
言語は、Dでも.NETでも何でも構いません。
0208デフォルトの名無しさんNGNG
http://www.google.co.jp/search?q=%E5%B9%BC%E5%A5%B3%E3%81%AE%E3%82%A8%E3%82%AD%E3%82%B9&ie=UTF-8&oe=UTF-8&hl=ja&lr=
0209デフォルトの名無しさんNGNG
カナダのバンクーバーで行われたお手玉世界選手権で、見事福島県いわき市に住む
神尾トメコ(82)が優勝した。決勝ではアメリカのビル・ランドルフ(26)と争った。
神尾は決勝でなんと11個のお手玉を操り、観客の度肝を抜いた。この大会で日本人が
優勝したのは初めてであり、神尾は「これも皆さんのおかげです。ありがとうございました。」
という謙虚な発言をした。この記録はギネスにも認定され、同時に2つの快挙を成し遂げた。

詳細 <福島県いわき市のお手玉11個に成功したスーパーおばあちゃんを称えるスレ>
http://tmp2.2ch.net/test/read.cgi/mog2/1076074534/l50
0210デフォルトの名無しさんNGNG
良く解らんけどGCの使い道を強力に使えるゲームがある

エロゲー
0211デフォルトの名無しさんNGNG
リアルタイムはどうでもいいものなら
GCは無茶苦茶強力な武器なんだよな言うまでもなく
0212デフォルトの名無しさんNGNG
キッコータイマーとかいう
時計作ったけど
C言語に作り直したらメモリーリークしてびびった
メモリ50%使用の状態だったのに
一時間つけてたら90%とか40%も増えてた

GCは楽チンでえぇね(´∀`*)
0213デフォルトの名無しさんNGNG
>>212
GC があってもリソース解放忘れは防げないので、ご注意を。
0214デフォルトの名無しさんNGNG
曲線描画でpoligonだっけ?
なんかそんな感じの使っててメモリを解放し忘れてただけだったから平気w
0215デフォルトの名無しさんNGNG
D言語しながらじゃがりこ食うのっていいよな
0216デフォルトの名無しさんNGNG
Cはmallocとfreeを何度も繰り返すと、メモリのフラグメンテーションでも起きるのかね?
freeしたところが再度使わるのであれば、時計程度でメモリリークなんてしないよね
0217デフォルトの名無しさんNGNG
まあ、そりゃmallocとfreeの実装によるだろう。
んでもとりあえず一般的だろうと思われるmallocとfreeの実装で、
毎回サイズの違うメモリをmalloc/freeしまくったら
メモリのフラグメンテーションがおきる可能性はかなりありそうだな。

それとメモリリークってのはmallocしたのをfreeしないことであって、
ちゃんとfreeしてるならそりゃ(フラグメンテーションが起こっていても)
メモリリークとはいわない気がするがどうか。
0218デフォルトの名無しさんNGNG
処で、50%から90%に増えたのなら40%増ではなくて80%増だと思うのだが。
0219デフォルトの名無しさんNGNG
>>214を無視しないで話を進めないでくれ・・・
つづりとか関数名を忘れたことは謝るから
PolyPolylineの第ニ引数のPOINT*を毎回mallocで作ってた癖に解放し忘れたわけ
だからメモリリークを起こしました

それだけです
0220デフォルトの名無しさんNGNG
つまり>219は阿呆だったと。
大丈夫、あんたの場合は言語に関わらず同じような阿呆を繰り返すよ。
0221デフォルトの名無しさんNGNG
>>218
この難解な謎解きは俺への挑戦か?
%を単位と取るか記号と取るかで表現が変わるけど
意味合い的にはどっちも間違いじゃないと思う
0222デフォルトの名無しさんNGNG
>>221
> 意味合い的にはどっちも間違いじゃないと思う
よく混同して用いられるけど、正確には間違い。
前者はパーセントといわず、ポイントといいます。

つまり50%→90%は40ポイント増または80%増。
0223デフォルトの名無しさんNGNG
>>220
メモリの解放はすべてGCに任してたわけですけど
それは阿呆なんでしょうか?
ならもうD言語はやめようと想います

少し移植が上手くいかなかっただけで文句言われたらなぁ
大体もう解決してるし過去の事をとやかく言う方がアホだろうね
0224デフォルトの名無しさんNGNG
>>223
厨房に煽られたぐらいで止めるとか言うなら勝手にやめろ
大体バカ相手にしてるお前もバカだって事ぐらい解れ
0225デフォルトの名無しさんNGNG
同感だな。2chから有用な情報を取り出したいなら、
情報選別能力と煽り耐性は鍛えておいた方がいいぞ。
0226デフォルトの名無しさんNGNG
メモリ解放だけがプログラミングじゃない。
そんなところで躓く香具師はメモリ解放を他人任せにできても
どうせ他で躓く。

まぁ、そんな香具師でも躓きにくくなったのはいいことだな。
0227デフォルトの名無しさんNGNG
>226
>まぁ、そんな香具師でも躓きにくくなったのはいいことだな。

問題が起こった時、その尻拭いをするのが別人だという
点を除いて、な・・・
0228デフォルトの名無しさんNGNG
>>226
の意味が解らない
他人任せ=GCなのか
バグを取り除くのが他の人なのか

そこんところをはっきりしてくれ
0229デフォルトの名無しさんNGNG
>>228
他人任せ=GCの意味に見えるよ。文脈的に。

ところで漏れは上のほうにあった保守的GCの性質、
つまりint型でも中にポインタ値らしきものがあったらそこは解放されないのか?
が気になる。
だとしたらさ、(int型の)static変数に偶然そういう値が代入されちゃって
その後不変だったらそこは解放されなくて、
しかもGCが辿るポインタのチェインの根元の方だと
(かつその先のポインタはそこからしか辿れない場合)
その先も解放されない、ていう、かなりいい加減なGCってことだよね。
しかもどっかの記事によるとbyte配列も4byte alignで辿るみたいだし、
偶然ポインタ値と一致する、なんて結構あり得るんだよね。
もちろん自分で色々試してみたんだけど、今いち確信できないんだよ。
ただやっぱりint型でもポインタ値突っ込むとそのポインタ値は100%
解放されない。ポインタ値を突っ込んだint変数をクリアしても、
解放されないことはあったけどね。
スタックかどっかに残ったままになってたのかね。
詳しい人いたら、情報よろしく頼むね。
0230デフォルトの名無しさんNGNG
あぁそうそう最後にnewしたオブジェクトは、
fullCollectしても解放されなかった気がするな。
この辺の挙動もどういう理由か、わかればスッキリするよね。
分からなくても、別にいいんだけどさ。
0231デフォルトの名無しさんNGNG
保守的GCが使えないってのは、良くある結論だと思うよ。
毎フレームfullCollectして1回のGCにかかる時間を減らせばいい、
なんて言ってた人いるけど、そうじゃないよね。
1回のGCでドコも解放されなければ、その時間は全て無駄だよね。
データ配列として10MBも確保してるような場合、
毎フレームスキャンするんだよ。正気の沙汰じゃない。
Dでリアルタイム性が重視されるコードを書くなら、
GCは走らせちゃだめなんだよ。大規模になればなるほどね。
0232デフォルトの名無しさんNGNG
最後に一つ提言しとくよ。
Dの言語仕様はC++よりはまし。その程度のものなんだよね。
ラムダもクロージャもなければMixinもないし。
まぁin,out,unittestや組み込み配列は妙に便利なのは認めるけどさ。
世の中探せばもっと表現力があってライブラリーも(少なくともDより)
豊富な言語は、それなりにあるよ。その中には関数型言語が多いね。
でもC/C++からの低い学習曲線っていうその1点が、
Dの大きなアドバンテージなんだろうね。
C#でネイティブコードを吐けるようになれば、
Dのポジションは完全に失われちゃんだけどさ。
0233デフォルトの名無しさんNGNG
Dのメリットは、旧式リンカの上で割と新しめの言語機能を…だと思うけどな。
C#にしてもJavaにしても、文法からしてランタイムがあって実行時にダイナミックなんちゃらができるの前提でしょ。
だからネイティブC#が出来ても同じだけのパフォーマンスは期待できないはず。
マネージドコードでポインタが追跡できてインクリメンタルGCが可能になる分、GCに限っては性能出るかも知れないけど。

そんなのに頼らない制約の中ではDは頑張ってる…というか、C#とかのリッチな気分でDのコード書くな。
Dは、C言語並みにガリガリのコーディングするつもりで使ってこそパラダイス。
DのGCは、C++が暗黙のコンストラクタ/デストラクタのせいでコンパイラは暗黙のtryとかいっぱい埋めこまねばならず
無駄に生成コードサイズが増えてしまったのを、スッキリさせるため程度に考えとけばいい。頼り切るものじゃない。
巨大なバッファが不要になったら明示的にdelete書くし、局所的にしか使わないオブジェクトにはauto付けまくる。
そもそも動的配列のコピーオンライトすらパフォーマンス目的で見送られた言語だ。
0234デフォルトの名無しさんNGNG
C++の1/10のコストで9/10の表現ができるのがDということなので。
残りの1/10の表現とやらをCで埋め込めっつーことだね。
0235デフォルトの名無しさんNGNG
言語仕様もコンパイラもライブラリもまだ成熟していないってのに
そうやって結論付ける意味はあるの?

>>220-228
何か職場で嫌な事でもあるの?
お兄さんが相談にのるよ?
0236デフォルトの名無しさんNGNG
>>235
現時点での結論。そんなのなんだって言える事だろ。
0237デフォルトの名無しさんNGNG
そうそう。クラスも使えるC言語程度の低レベル言語使ってるような気分でいれば、
C/C++のいちいち気に触る文法が細かいところで改善されててとても素敵。
贅沢なプログラミングがしたいならDはお薦めできない。
0238デフォルトの名無しさんNGNG
>>236
だからそれが意味あるの?って聞いてるんだが
0239デフォルトの名無しさんNGNG
自己満足だろ。まぁ日記。
0240デフォルトの名無しさんNGNG
アホはどっちなんだか
0241デフォルトの名無しさんNGNG
お前ら、なんだか上の議論が理解できない漏れみたいなアホめにコードで語ってください。
0242デフォルトの名無しさんNGNG
D言語にはC++のSTLにあたるものは標準で付いてくるの?
0243デフォルトの名無しさんNGNG
>>242
今portingしてるから待ってれ
0244デフォルトの名無しさんNGNG
なんか少林サッカーみてたら
香ばしい流れになってる
でも読んでて楽しい

WindowsでGUIプログラムを作るとすると
D言語では色々不具合(変数名の重複)とか出てきたじゃん
あれ、なんとかしてほしいよなぁ
0245デフォルトの名無しさんNGNG
>WindowsでGUIプログラムを作るとすると
>D言語では色々不具合(変数名の重複)とか出てきたじゃん

うちはふつーにできてるけど
もうちょっと詳しく話してみて
0246デフォルトの名無しさんNGNG
>>245
触ったの結構前なんですみません
モジュールを追加してくと変数名や型の重複が目立ちますよね
以前win32apiを使いたい時に色々追加したらそうなっただけです

今はわからないです
0247デフォルトの名無しさんNGNG
つまり、毎フレームfullCollectを使う人は
大きいメモリをmallocで確保しろと
0248デフォルトの名無しさんNGNG
C++/CLI 触ってみた。
従来の C++ のコードと、マネージコードが混在していて楽しい。
テンプレートも使えるし。仕様が固まったら、かなり良いものになりそうだ。
0249248NGNG
む、誤爆。スマン
0250デフォルトの名無しさんNGNG
本当に誤爆なのか。
わざとだろ(w
0251デフォルトの名無しさんNGNG
ttp://www.atari-soldiers.com/dide.html
DIDE(full package)のリンクが間違ってるっつーのはどういう事なんだ・・・・・・

×: ttp://www.atari-soldiers.com/dmd_full.zip
○: ttp://www.atari-soldiers.com/dide_full.zip

ガイシュツだったらごめん。
0252デフォルトの名無しさんNGNG
DIDEでUTF-8でもSJISでも文字化けするのは仕様?
実行ファイル上では問題ないからエディタのせいだよね?
0253デフォルトの名無しさんNGNG
CGI用のロックとかするにはどうするのがベストなんだろう?
OSによって、ロックファイル使えれば使って、使えなければループで回ってみたい
なコード書かなきゃだめかなぁ?
ライブラリにあるといいんだけどなぁ。

0254デフォルトの名無しさんNGNG
ロックって安全は安全だけど、ロック解除直後から別ルーチンの処理開始までが、微妙に遅かった気がする。
まあそんなことはどうでもいいか。
0255デフォルトの名無しさんNGNG
×別ルーチンの処理開始までが
○別プロセスのファイル処理開始までが
0256デフォルトの名無しさんNGNG
ぜんぜんレスがなくて寂しいなぁ
どれ、D言語でDirectXでプログラムでゲームで遊んでみるか
0257デフォルトの名無しさんNGNG
std.mmfileを使ってロックできるんじゃない?
0258デフォルトの名無しさんNGNG
>>257
中身無いんですけど。
0259デフォルトの名無しさんNGNG
>>258
次のバージョンあたりには、ついてくるんじゃ?
そのときついでに、プロセス間の同期もできるんだろうから、それ使えばきっとOK
0260デフォルトの名無しさんNGNG
あるファイルで以下のように定義。
class Test{
 private: int test(){ return 3; }
 public: int test(int n){ return 4; }
}

別ファイルで
 Test a = new Test;
 printf("%d", a.test(3)); //アクセスできなくてコンパイルエラー。

あるファイルの定義順を変える。
class Test{
 public: int test(int n){ return 4; }
 private: int test(){ return 3; }
}

別ファイルで
 Test a = new Test;
 printf("%d", a.test()); //コンパイル、実行できる。

0261デフォルトの名無しさんNGNG
オーバーロード時の属性関係のバグか。
0262デフォルトの名無しさんNGNG
同じファイル内だとprivateが無視されるかんじだけど、バグ?
0263デフォルトの名無しさんNGNG
同じファイル=モジュール間のものは互いに friend になる仕様
0264デフォルトの名無しさんNGNG
モジュール内グローバル変数は自動でextrnになる仕様?
つまりC/C++と比べて宣言の仕方が逆になったということ?
Classの省略規則からしても逆なわけだから混乱するね
0265253NGNG
とりあえず、mutex使ってロックするものを作ってみた。(WIN版だけ)
これで大丈夫?
HANDLE LockMutex(char[] name)
{
 HANDLE hMutex;
 /* ミューテックスのオープン */
 while((hMutex = OpenMutexA(MUTEX_ALL_ACCESS, FALSE, name))==null){
  hMutex = CreateMutexA(null, FALSE, name);
 }
 /* 所有権獲得まで待機 */
 WaitForSingleObject(hMutex, INFINITE);
 return hMutex;
}
void UnLockMutex(HANDLE hMutex)
{
 ReleaseMutex(hMutex);
 CloseHandle(hMutex);
}
で、思ったんだけど、synchronized(char[])で、プロセス間で同期できるといいなぁと。
クリティカルセクションは簡単に同期できるのに、プロセス間が簡単に同期できないって変でしょ。
0266デフォルトの名無しさんNGNG
>>265
大丈夫かどうかはスレッド100個くらい作って指定時刻と同時にDoSチックに攻めればいい。
0267デフォルトの名無しさんNGNG
C++になかった機能の
メンバ変数の静的な初期値を使ってみたんだけど……

class SomeClass {
static const double s_c = 0.0;
const static double c_s = 0.0;
double a = s_c; // OK
double b = c_s; // compile-error said "no-constant expression."
}

仕様? バグだとしたらとっくに露見していそうな感じするけど
0268デフォルトの名無しさんNGNG
普通は先にstatic書くから、気づいてない確率が高い。
バグだろうけど、仕様としたほうがソースの可読性向上になるね。
0269デフォルトの名無しさんNGNG
class hoge{
 int x;
}
class hogehoge: hoge{
 override int x;
}
とやって、
 hogehoge a = new hogehoge;
 a.x = 10;
 printf("%d\n", ((hoge)a).x);
とやったら、
10が表示されてほしいなぁ…
0270デフォルトの名無しさんNGNG
ちがった間違えた。
class hoge{}
class hogehoge : hoge{}

class moge{
 hoge h;
}
class mogemoge: moge{
override hogehoge h;
}

こうだ。
0271デフォルトの名無しさんNGNG
override なんかしなくてもできるような気がするのは気のせいか?
0272デフォルトの名無しさんNGNG
基底クラスのメンバ変数と同名の派生クラスの変数を宣言すると、
基底クラスの関数が派生クラスの同名変数を変更してくれんのよ。
>>269と同じような話。ようは両者が区別される。

で、>>270みたいにして、
class hogehoge{
  . . .
 this(hogehoge hh){
  h = hh;
 }
  . . .
とやって、hogehogeのメンバ関数にアクセスするときにいちいちキャスト
せんでもすむようにしたいのよ。
あと、派生クラスでも使う基底クラスの変数を、明示的に宣言できると、見やすい。
0273デフォルトの名無しさんNGNG
低級レベルと高級レベルを明確にレイヤー分けしたいのか。

0274デフォルトの名無しさんNGNG
>>272
再利用性に掛けるから、便利そうに見えて実は大げさな処理に感じる。
0275デフォルトの名無しさんNGNG
再利用って言うのはどうもいけ好かない
あんなの再利用できるのを選別してる間に新しいの書いたほうが有効だっつーの
0276デフォルトの名無しさんNGNG
そうだな。再利用と言っても実際はコピペだし
新しいプロジェクトに合わせるために継ぎ接ぎだらけになって結局劣化するし。
0277デフォルトの名無しさんNGNG
>>275,276
再利用の単位が大きすぎるとそうなる。
もっと基本的なものを作れ。
0278デフォルトの名無しさんNGNG
>>277
表現が変だったが
C++でいう再利用ですが
たとえば文字列をフォーマットしたりとか
そういう単純な関数の再利用は俺も賛成派です
0279デフォルトの名無しさんNGNG
再利用を目的とした機能の分割じゃなくて、
見通しや関係の理解しやすさからクラスわけしてる。
 hoge h;
 h = new hogehoge;
としちゃうと、hogehogeのメンバにアクセスするとき結局型決めうちになるから、
抽象化も型安全性もない。それだったら最初から、「hはhogehogeとして扱いますよ」宣言
をしておきたいんだ。

あれかな、override hogehogeは、override hogehogeを持つクラスを再利用するためじゃなくて、
継承もとのクラスをよく再利用するために欲しいと思うんだな。
0280デフォルトの名無しさんNGNG
GC実装したカーネルってあるのかな?
まだ研究中とかでもいいんだけど、そこにDを売り込みたいね
0281デフォルトの名無しさんNGNG
DのGCについて理解を深めてからもう一度コメントどうぞ
0282デフォルトの名無しさんNGNG
>113>115>117>126>134>138>140>141>142>242>244>252>256>262>264>280
0283デフォルトの名無しさんNGNG
2,3個自分のが入ってる
0284デフォルトの名無しさんNGNG
DだろうがなんだろうがGCはGCだろ
0285デフォルトの名無しさんNGNG
たとえばメモリ解放の手順がいろいろあるように
GCの手順もいろいろ、動作もいろいろ
同じとみるな
0286デフォルトの名無しさんNGNG
”いろいろ”なんて言葉にしてみれば
大した事が無いなんて事が多いよ
0287デフォルトの名無しさんNGNG
で、D言語を作っている人たちはD言語作ることからいったいどうやって
収益あげるつもりなのでしょうか。
0288デフォルトの名無しさんNGNG
言語は元々金にならんとMatzやんも言ってたよ。
0289デフォルトの名無しさんNGNG
dmcも金取ってるのはIDEだけだしな。
0290デフォルトの名無しさんNGNG
>>287
流行ってきたら本書いて売る。
0291デフォルトの名無しさんNGNG
delta modulation compiler
0292デフォルトの名無しさんNGNG
DMD 0.86リリースage
0293デフォルトの名無しさんNGNG
初めての織田信長より面白いネタがほしい
0294デフォルトの名無しさんNGNG
>>290

いや、言語作らなくても本なら誰でも書けると思うんですが・・・
0295デフォルトの名無しさんNGNG
>>294
D言語をつくることから、に対しての答えとしては正しいと思うが
0296デフォルトの名無しさんNGNG
答えなんて無い
そんなバカな、プログラマーは思うでしょう
システム化された社会ならしょうがないでしょうね
0297デフォルトの名無しさんNGNG
C#でネイティブコード作れないとか言ってるのがいるけど、C#は実行時はいつも
ネイティブコードにJITしてるので関係ないだろ?
おまけに、ngen使えば環境非依存性を犠牲に(どうせmonoとか使う奴いないだろ)
ネイティブコードに落とせるわけだし。
0298デフォルトの名無しさんNGNG
>>297
ネイティブでしか書けないようなコードが書けるかどうかが問題なのであって
実際にネイティブかどうかなんてのは実はあまり関係ない
0299デフォルトの名無しさんNGNG
>>297
スレ違いだがJITしてるにしろ変換できるにしろその変換分のオーバーヘッドが
最低でもかかってくるからパフォーマンスに影響するのがいただけない。
ついでにユーザーサイドから言えば余計なもの(.NET Runtime)入れなきゃい
けないのがめんどくさい。
まーMSはそれもOSに統合しちまうんだろうけどさ。

で、dmd0.86からstd.socketとstd.socketstreamが入れられたわけだが
これでjava厨の煽りが少なくなればいいね('A`)

#よくよく考えたら煽ってるのってVMマンセーが多いような…。
0300デフォルトの名無しさんNGNG
>>299
.NETはVBの延長線上のものだから、企業が嫌でも好む。

まぁD言語はネイティブOOP最強の座は約束されてるようなもんだ。
それが実現できないのなら、あっさり廃れるだろうね。
0301デフォルトの名無しさんNGNG
やっぱりVCLをDで書き直したBorland Dが欲しいんだよなぁ・・・。
0302デフォルトの名無しさんNGNG
クロスプラットフォーム対応なDBuilderとか?

0303デフォルトの名無しさんNGNG
Bolandにお願いするしか
署名つのるとか
0304デフォルトの名無しさんNGNG
ネイティブってネガティブに似てる
0305デフォルトの名無しさんNGNG
DはObjectPascalで出来ることは全て出来るのだろうか?
0306デフォルトの名無しさんNGNG
コンパイラのソース公開まだ?
0307305NGNG
出来上がる物の事じゃなくて、言語の仕様の事ですよ。
0308デフォルトの名無しさんNGNG
>>305
細かいところはどーにでもなるけど、RTTI関連の仕様がすっぱり抜け落ちてるのでVCLは無理
Borlandだったら勝手に拡張するだろうけど
0309デフォルトの名無しさんNGNG
そしてDMがそのチューンをすれば完璧と。
0310デフォルトの名無しさんNGNG
暴がDMに出資でもしない限り無理。
0311デフォルトの名無しさんNGNG
なんでいきなりver0.86なんだ?
change logにある
>Added casting ability to non-COM interfaces.
はてな?COMインターフェースって言語仕様に含まれてるの?
この文の意味を教えてくれ!
0312デフォルトの名無しさんNGNG
>>311
http://www.digitalmars.com/d/class.html#interface
COM Interfaces
A variant on interfaces is the COM interface. A COM interface is designed to map directly onto a Windows COM object. Any COM object can be represented by a COM interface, and any D object with a COM interface can be used by external COM clients.

A COM interface is defined as one that derives from the interface std.c.windows.com.IUnknown. A COM interface differs from a regular D interface in that:

* It derives from the interface std.c.windows.com.IUnknown.
* It cannot be the argument of a DeleteExpression.
* References cannot be upcast to the enclosing class object, nor can
they be downcast to a derived interface. To accomplish this, an appropriate
QueryInterface() would have to be implemented for that interface in standard
COM fashion.
0313デフォルトの名無しさんNGNG
class A{
 this(){
  b = new B;
 }
 ~this(){/*ここでresouce解放*/}
 B b;
}

class B{
 ~this(){/*ここでresouce解放*/}
}

int main(char[][]){
 A a = new A;
 return 0;
}

これって必ず、Bのデストラクタ→Aのデストラクタの順で呼ばれるって決まってるの?

Aの持つ所謂unmanaged resouceをデストラクタで解放する前にBのそれを解放しなきゃいけないんだけど
先にAのデストラクタが呼ばれちゃう。どうすればいいんでしょ?autoつけてもだめだし。
というかCOMなんですが。
0314最凶VB厨房NGNG
import std.stream;
class A{
this()
{
b = new B;
}
~this()
{
delete this.b;
stdout.writeLine("Aがお亡くなりになりました");
}
B b;
}

class B{
~this()
{
stdout.writeLine("Bがお亡くなりになりました");
}
}

int main(char[][] arg)
{
auto A a = new A;
return 0;
}
0315デフォルトの名無しさんNGNG
>>314はえろい
0316最凶VB厨房NGNG
なんでやねん
0317デフォルトの名無しさんNGNG
D の方向性には共感できるし、機能的にも面白いと思う。
メソッド名が lowerCamelCase でなければ C++ から乗り換えたのだがなあ…
0318デフォルトの名無しさんNGNG
郷に入っては郷に従え。
そもそも乗り換えでなく両方できるようにすればいいじゃん。
0319デフォルトの名無しさんNGNG
やる気だよな
何でもかんでも
0320デフォルトの名無しさんNGNG
いやまあ仕事で使うとかならすんなり郷に従うんだけども
0321デフォルトの名無しさんNGNG
getter, setterのこともあるから、メソッドの先頭が小文字ってのには賛成だな
0322デフォルトの名無しさんNGNG
class Aaa {
 this(int x){}
}
class Bbb : Aaa{
}

コンパイルエラー。//constructor this (int x) does not match argument types ()

http://www.kmonos.net/alang/d/class.html#constructorsを参照するに、
Bbbにthis(){}が生成され、this(){ super(); }と挿入され、基底クラスにはthis()がないからエラー、か?
0323デフォルトの名無しさんNGNG
そうだね。
このパターンなら、エラーにならない方がおかしい。
0324ミナツキ サヤ ◆SAYAC2HJWE NGNG
324
0325デフォルトの名無しさんNGNG
>>323
コンストラクタは基底クラス任せって、ありえないかなぁ?
必要な関数だけオーバーライドして使いたいのに。
0326デフォルトの名無しさんNGNG
違う、this()がないのが悪い。
だがthis()はされたくない。
this(){ }かthis(){ assert(0); }とでもしておけと言うのか?
0327デフォルトの名無しさんNGNG
class Aaa { 
  this(int x){} 
} 
class Bbb : Aaa{ 
  int i = 3;
  this(){ super(i); }
} 

void main(){
}

これじゃあかんの?
0328デフォルトの名無しさんNGNG
C++ 伝統のイディオムで

class A {
private:
this();
}

だろ。
ファイル内すべて friend になる D だとリンクエラーまで
待たなきゃいけないケースが多そうだけど。
0329デフォルトの名無しさんNGNG
どうでもいいけどデフォルト引数実装してないのかね?
0.86だとテンプレートデフォルト引数を実装とかあるけど
0330デフォルトの名無しさんNGNG
>>328
====test1.d=========================
class Aaa { private this(){ } }
====test2.d=========================
import test1;
class Bbb : Aaa { }
===================================
dmd -c test2.dで、コンパイル通りません。
class Bbb : Aaa { this(){ } }でもコンパイル通りません。どうすりゃいいんだ。

====sub.d===========================
class Aaa {
 int x; int[] v;
 this(int x, int[] v){ this.x = x; this.v = v.dup; }
 abstract int get(int n);
}
class Bbb : Aaa {
 override int get(int n){ return x + v[n]; }
}
class Ccc : Aaa {
 override int get(int n){ return x * v[n]; }
}
====main.d===========================
import sub.d
int main(){
 Bbb b = new Bbb(3,5,7);
 Ccc c = new Ccc(2,8,8);
===================================
といったことをやるのに、そもそもnew Bbb(3,5,7)ができないんだが、どうすればいいんだ。ヴァー
0331デフォルトの名無しさんNGNG
>>330
氏ね。
0332デフォルトの名無しさんNGNG
>>330
「デフォルトコンストラクタの呼び出し禁止」イディオムはこの場合以下のように使う。

後者は意味不明。何の呼び出しを期待しているのかな?

class A {
public:
this(int a) {}
}

class B : public A {
public:
this(int a) { super(a); }
private:
this();
}

int main() {
A a = new B(0);
return 0;
}
0333デフォルトの名無しさんNGNG
>>322
その例の class B みたく public: this(int a) があるときって
private: this() って必要だっけか?
0334デフォルトの名無しさんNGNG
>>333
デフォルトコンストラクタがなければ、そもそも呼びようもないからね。
0335デフォルトの名無しさんNGNG
ああ確かに>>332ではいらないな。
大本のレスでは、拡張コンストラクタもなくてエラーが出ていたようだけど
0336デフォルトの名無しさんNGNG
結局は this(int x){ super(x); } か。 それを書かずとも
B b = new B(x); で基底の this(int x)を勝手に呼び出して欲しかったんだよ。
いちいち全部の派生で書くのはスマートじゃないと思ってさ。
これで黙っとくよ。 スレの浪費すまんかった。
0337デフォルトの名無しさんNGNG
>>いちいち全部の派生で書くのはスマートじゃないと思ってさ。

オブジェクトの構築方法はクラスと密接に関わってるから
必要なものを全部書くべきなのが当たり前。
0338デフォルトの名無しさんNGNG
単なるメソッドの追加なら
>>128とかに例があるけど・・・
これがバグか仕様かは不明
0339デフォルトの名無しさんNGNG
x[] = y[] + z[]; は not implemented なんですか?
0340デフォルトの名無しさんNGNG
x.length = y.length + z.length;
x[] = y[];
x[y.length..(y.length+zlength-1)] = z[];

でいいんでないかい?
0341デフォルトの名無しさんNGNG
もとい。
x = y ~ z;
0342デフォルトの名無しさんNGNG
配列の中身を加算するとかじゃないの?
0343デフォルトの名無しさんNGNG
D言語いいなぁ。何よりポインタが削られてないのがいい。
0344デフォルトの名無しさんNGNG
SQLで言うところのUNION?
要望出してみると面白いね
0345デフォルトの名無しさんNGNG
D言語で数値演算ライブラリとか既にあるのでしょうか?
あったら紹介してください mOm
0346デフォルトの名無しさんNGNG
>>345
std.math
ttp://p17.aaacafe.ne.jp/%7Elabamba/?std.math

ぐぐればあっさり見つかるぞなもし
0347デフォルトの名無しさんNGNG
ん?これって標準の数学ライブラリなのでは?
Matrixライブラリとか、数値積分とか、超長周期乱数の生成とか・・・etc は?
0348デフォルトの名無しさんNGNG
まず誰かD言語でOS造ってくれよ
0349デフォルトの名無しさんNGNG
D言語はGCがあるからちょっと無理なのでは?
0350デフォルトの名無しさんNGNG
DunixとかDinuxとか?
0351デフォルトの名無しさんNGNG
DNU
0352デフォルトの名無しさんNGNG
DQN
0353デフォルトの名無しさんNGNG
>>352
うまい!ざぶとん1枚。
0354デフォルトの名無しさんNGNG
自演・・・か
0355デフォルトの名無しさんNGNG
>>352
うまい!ざぶとん1枚。
0356デフォルトの名無しさんNGNG
>>347
とりあえずMersenne Twisterは移植されてるのでそれを使うよろし。
http://www.digitalmars.com/drn-bin/wwwnews?D/17878
0357デフォルトの名無しさんNGNG
0.86から、debug { … } 文の説明から
>There is no else clause for a debug statement, as debug statements
> should add code, not subtract code.
の一文が消えてelseが付けられるようになっているみたいなんだけど、
ニュースグループでこの辺何か議論あったっけ?
0358デフォルトの名無しさんNGNG
>>349
(゚Д゚)ハァ?
0359デフォルトの名無しさんNGNG
>>358
(´ _ `)ゝハァ
0360デフォルトの名無しさんNGNG
>>356
メルセンヌ素数の19937だろ?これは証明はよく知らないけど、アルゴリズムは頻繁に使わせてもらってる。
超長周期乱数だな。gslとか ublas をいちいちリンクするのも億劫なので自分でC++に
実装してみたけどきめて簡単。M系列知ってりゃわずか10分程度で誰でも実装できる。
だから作っていただいてもあんまりありがたくないかも?
勉強がてらC++のマトリックスライブラリでも移植してみよかな。express template の
実装方法知らないから所詮オナニーツールにしかならんけどね。
0361デフォルトの名無しさんNGNG
Expression Template
0362デフォルトの名無しさんNGNG
C++相談室にこんなアホが居る

http://pc5.2ch.net/test/read.cgi/tech/1082047479/728

D言語はC++もできなかったマヌケがやる言語だとよ。
0363デフォルトの名無しさんNGNG
>362
スルーできんお前もアホ
0364デフォルトの名無しさんNGNG
>>363
それをスルーできんお前は糞
0365デフォルトの名無しさんNGNG
>>362
言ってる事は当たってるだけに痛い・・・・・
0366デフォルトの名無しさんNGNG
C++さんざん書いてきたがやっぱり生産性が高いとはいいがたい。
余計なことをオートでやってくれてかつC++にあったわずらわしく不必要な
仕様を整理する目的でDがあるんだろ?
ガベコレもどきの機能をboost使えなんてが正常な状況か?
0367デフォルトの名無しさんNGNG
>>366
C++標準化委員会はわずらわしく不必要な仕様を整理するか
互換性を重視するかで、互換性を取った。

D言語が互換性をほぼ無視して整理する方を取ったんだろ。
そりゃすっきりして当たり前。でもC++にはCという強力で豊富
なライブラリがあったが、D言語は1からのスタートだろ。Java
とかC#とか新言語目白押しの現在、さぞ苦しいだろうなあ。
0368デフォルトの名無しさんNGNG
突っ込まれるとまずいので一応訂正。
Javaは新言語ではないが、どちらかと言うとCとの互換性がない
点でD言語に似ている。
0369デフォルトの名無しさんNGNG
Java/C#とDを同じ位置づけしてる点でなーんも知らんバカ。
なんでasmを埋め込む仕様にしたか考えてみろ。
0370デフォルトの名無しさんNGNG
Cのライブラリをそのまま使えないのはJavaもC#も同じ。
あの仕様草案みてるとC#よりもっとハード/システム寄りのことができてかつ
C#より洗練された感じ。
0371デフォルトの名無しさんNGNG
C#は新たな言語というよりJavaそのものだ。そこそこ速いけど。
ハードウェアを直接扱うことはできない。
0372デフォルトの名無しさんNGNG
>>369-371
はぁ〜という事はD言語はC系と同じくネイティブを吐く系なのね。
まあ知ってるけどな。今更作ってどうすんの〜って感じ。
そんなにまでしてM$に言語の利権買って欲しいのかねぇ。それ
ともLinuxで細々と極一部の言語マニアに愛されてマイナー路線
を行く、か?ププ
0373デフォルトの名無しさんNGNG
>はぁ〜という事はD言語はC系と同じくネイティブを吐く系なのね。
あたりまえだろが。そんなことも知らんかったのかい。

>まあ知ってるけどな
嘘つけ。
0374デフォルトの名無しさんNGNG
>>373
必死だなププププ
0375デフォルトの名無しさんNGNG
ばかばっか。
0376デフォルトの名無しさんNGNG
仕事で使おうなんて思ってるやつはいないだろ。
書いてて楽しい言語だから遊んでるんだよ
0377デフォルトの名無しさんNGNG
>>374
図星を突かれるとすぐ「必死」っていってごまかしますねw
0378367,372,374NGNG
D言語はJavaやC#と同じVMや実行エンジン必要とするC#と同じと思ってまツタ。
それを指摘されたのでムッとして皮肉しか言えなくなったんでちゅ。
御免なさい。
0379デフォルトの名無しさんNGNG
>>377
貴様の思考回路と一緒にしないで下さいますぅ?
0380デフォルトの名無しさんNGNG
>>378
あらぁ〜、俺最初から知ってて書いたのにまだそんなたわけた
事を・・・・・これだからD厨は(自己規制
0381デフォルトの名無しさんNGNG
連休当たりから変な奴が出てきてるなあ。

>>380
D厨というか、単に煽って楽しんでるだけのバカだと思うが。
おそらく、Dは使えない。
0382デフォルトの名無しさんNGNG
>>381
ああ、D言語を触っている香具師が>>378みたいなのばかりだと
思うと、言語の善し悪しより先に使っている人間が嫌いになって
しまうよ。
>>376みたいな香具師は好感が持てるんだが。
0383デフォルトの名無しさんNGNG
D 0.87ー。
0384378NGNG
いいよ嫌いになってくれて、俺はC++しか使わないし。D使う奴は新し物好きの尻の軽い
あほの節操なしとしか考えてないからな。
0385デフォルトの名無しさんNGNG
なんでいちいち煽るようなこと書くかなぁ。自分の程度がしれるからやめた方がいいよ。
0386デフォルトの名無しさんNGNG
お前ら、C++スレを荒らすなよ。

マイナー言語でオナニーするのは勝手だが、他の人間に迷惑をかけるな。
0387デフォルトの名無しさんNGNG
Allegroってなに?
http://www14.org1.com/~puchinya/index.php?D%B8%C0%B8%ECImportLib
0388デフォルトの名無しさんNGNG
C++スレからのお誘いだな。じゃ荒らしに入ってくるわ。

http://pc5.2ch.net/test/read.cgi/tech/1082047479/
0389デフォルトの名無しさんNGNG
>>383
D 0.88では?
0390383NGNG
>>389
4時間前は0.87だったのよ。
あー、Walterタンさりげなく直してる。。。
http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D/633
0391デフォルトの名無しさんNGNG
漏れはHSPとD、コンパイラが先にオープンソースになった方を使う。
0392デフォルトの名無しさんNGNG
住み分けろよボケ
他所の言語を貶してる奴は自分の好みの言語すら使いこなせないアマグラマだけだ
0393デフォルトの名無しさんNGNG
D言語で遊んではいたけど、これってそんなメジャーになれる言語とは思ってなかったなあ。
まあ良い。おもしろいおもちゃだし。
0394デフォルトの名無しさんNGNG
ぶっちゃけDelphyのポジションは食うと思う。
0395デフォルトの名無しさんNGNG
Delphy どころか C++の大部分食える。
ガベコレに動作モードのレベル設定できるようになればほとんどCも食えるだろ。
0396デフォルトの名無しさんNGNG
>>387
Allegro - A game programming library
http://alleg.sourceforge.net/

ぐぐってみたけど、日本語で読める情報は全くと言っていいほど
存在しないみたい。海外だとSDLほどではないが人気があるのに。
0397デフォルトの名無しさんNGNG
複素数の取り扱いがMatlabのごとく1+2iなのかぁ。
ある種の教育受けた奴は虚数単位を後ろにつけることを嫌うんだがな。
0398デフォルトの名無しさんNGNG
C++とD言語は住み分けじゃなくて置き換わるかどうかが興味のあるところなんだよ。
ソフトだけでなくハードウェアの世界でもC++ベースのHDLが頓挫した今となっては
C++に置き換わる言語が求められてる。
0399デフォルトの名無しさんNGNG
>>397
んー、構文上の都合だろうね。
0400デフォルトの名無しさんNGNG
400
0401デフォルトの名無しさんNGNG
日本語のような余りにも複雑な母国語と英語を使い分けてるんだ、複素数の扱いなんてどうってことないだろ
0402デフォルトの名無しさんNGNG
日本語って複雑な言語の代表みたいに言われることが多いけど
文字が複雑なだけでそれ以外 (発音や構文なんか) はかなり単純な部類だよ。
0403デフォルトの名無しさんNGNG
>>397
>ある種の教育
俺のことだな。電気もしくは電子系では1+j1とか書くからな…
0404デフォルトの名無しさんNGNG
80近いアルファベットが存在するキチガイ語だから十分ややこしいよw
0405デフォルトの名無しさんNGNG
>>403
虚数単位を後ろに書くのはキモイよね。j->iでも構わないけどさ。
0406デフォルトの名無しさんNGNG
で、複何たらってのは何に使うの?
0407デフォルトの名無しさんNGNG
変数と区別がつかないじゃん。という文法上の制限だわな。
0408デフォルトの名無しさんNGNG
>>407
その通り。わかっちゃいるんだけどさ。
comples<double>(10,20)なんて書くよかずっといい。
0409デフォルトの名無しさんNGNG
すんません。情報工学系ですが虚数単位は後ろです。
a + biの形式。電気電子は前なのか…まぁ表記上の問題だろうけど
こういうの結構文化というか確執があるよな。
句読点の代わりにコンマとピリオドを使えとかいう文化とかな。
ウチのことだけどな。

ってここD言語スレか…
0410デフォルトの名無しさんNGNG
すまんがほんと何に使うのか教えて
0411デフォルトの名無しさんNGNG
>>409
>句読点の代わりにコンマとピリオドを使えとかいう文化とかな。

理系の論文はたいていそうだよ。
0412デフォルトの名無しさんNGNG
数学勉強しれ、少年。
0413デフォルトの名無しさんNGNG
>>412は国語を勉強しろ
0414デフォルトの名無しさんNGNG
>396
日本語表示能力がイマイチだからね。
(使う文字の分だけ独自仕様のフォントを用意しないといけない。)
FreeTypeを組み合わせれば何とか実用にはなるが。
0415デフォルトの名無しさんNGNG
昔、縦書きを想定したフォントしかなかったから横書きにすると上のほうに句読点が
来るから仕方なしに",."で代用した。ところが情報系ののような新しい分野の書物
は下に位置するフォントもできたので"。、"で統一されてるものが多いはずだけどな。

情報系でほんとに後ろか?情報科学系はともかく情報工学っていうのはもともと電気系だぜ。
電気出身者が数多く教鞭とってるはずだ。単に気づいてないだけじゃないだろうね?
虚数単位はベクトルの基底と同じだから前に書く。そもそも数学関係の√(-1)という意味合いより
正弦波の\pi/2の位相ずれを表す意味合いが強い。real<-->cos(ωt),imag <--> -sin(ωt)複素平面の
図式を常に意識してa+jbと書く。iは電流に使われることが多いのでj使うがこっちは別にどっちでも
気にしないな。
0416デフォルトの名無しさんNGNG
何故そこまで話を引っ張るのか
0417デフォルトの名無しさんNGNG
>>396
ありがとう。
0418デフォルトの名無しさんNGNG
>>416
後ろについてると発疹が出て痒みで眠れないから
地球上から絶滅して欲しいんだってさ。
0419デフォルトの名無しさんNGNG
オートとマニュアルメモリ操作用のポインタをそれぞれ用意できないのか?
0420デフォルトの名無しさんNGNG
>>419
class Class1{
int a;
}
void main()
{
auto Class1 autoClass1 = new Class1();
Class1 class1 = new Class1();
}
ってかけるが、そういうことではなく?
manual int p[]=new int[100];
とやっておくと、あとで、
delete p;
ってやりたいってこと?
普通に、int manualP[]=new int[100];
とでもして、
delete manualP;
とすればいいのでは?
0421デフォルトの名無しさんNGNG
http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D/1228
http://www.digitalmars.com/d/mixin.html
http://www.kmonos.net/alang/d/mixin.html
北ーーーーーーーーー!!!
0422デフォルトの名無しさんNGNG
Dのテンプレートが、ますます「賢いプリプロセッサ」になってきたような気が。
悪くは無いけど、スパゲッティ化しやすいようにも思う。
0423デフォルトの名無しさんNGNG
何が変わったかおせーて
0424デフォルトの名無しさんNGNG
mixinの実装は大体終わってるみたいだから次の版で付くのかな?
昆虫採集が楽しみだね。えへへ…。DTLもmixinが付いた後に出るみたいだしね。
0425デフォルトの名無しさんNGNG
>>422
C++ のテンプレートだって賢いプリプロセッサだろ?
0426デフォルトの名無しさんNGNG
教えて教えて→何故か逆ギレ、見当違いなところに噛み付いてくる
の繰り返し。

この人いつ消えてくれるのかなぁ。
0427デフォルトの名無しさんNGNG
>>425
ハァ?ばっかじゃねーの
おまえは一生C++やってろ
0428デフォルトの名無しさんNGNG
>>472
反論できなんですね(ワラ
0429デフォルトの名無しさんNGNG
できなん
0430デフォルトの名無しさんNGNG
>>421
この言語久々に仕様をみたら、だんだん気合が入ってきたな
マイクロソフトが採用するようなことがあったら、ちょっと追いたいね。
0431デフォルトの名無しさんNGNG
最初、C風の書き方ができるObjectPascalと思ってしまった、、、
0432デフォルトの名無しさんNGNG
expression templateみたいなのがもっと簡単に実現できるようにはならんのか?
0433デフォルトの名無しさんNGNG
E言語
http://www.skyhunter.com/marcs/ewalnut.html
0434デフォルトの名無しさんNGNG
でも、C++'程度じゃないの?
なにがすごいの?
0435デフォルトの名無しさんNGNG
やねうら○の盛り上がりかた
0436デフォルトの名無しさんNGNG
>>433
F-Z言語
http://www.kmonos.net/alang/abc/
0437デフォルトの名無しさんNGNG
>>430
コンパイルするのにライブラリのソースが必要な言語に、プロプライエタリな企業が乗ってくるとは思えないのだが。
0438デフォルトの名無しさんNGNG
>>437
?
別にC/C++と同じで、関数とクラスの宣言さえあれば中身のソースは要らんのだが…。
そりゃ、今のところオープンソースのライブラリしか書いてる人いないけど。
0439デフォルトの名無しさんNGNG
>>438
template はソース要るでしょ? もちろんC++でも要るんだけど。
一方、.NET generics や Java generics では要らないわけで。(できることも少ないけど)
0440デフォルトの名無しさんNGNG
>>439
自分でおかしなこと言ってると思わないか?
C++もDも必要な場合があるなら
MSがC++を採用してDを採用しない理由にはなってないだろ。
0441デフォルトの名無しさんNGNG
>>440
C++を採用してDを採用しない理由にはなってないが、
C#を採用してDを採用しない理由にはなるだろう?
0442デフォルトの名無しさんNGNG
それは論点をずらしてるだけやん。
>>437見てみなよ。
「コンパイルするのにライブラリのソースが必要な言語」に
C++もDも含まれるなら、C++に乗ったMSがDに乗ってくると思えないことは無いでしょ。
0443デフォルトの名無しさんNGNG
そもそもDの標準ライブラリは仕様が決められるだけであって実装は(仕様に従っていれば)自由なんでしょ?
コンパイルするのにソースが必要かどうかなんてどーでもいいような気がするが。
0444デフォルトの名無しさんNGNG
>>437
つーか、MFCとか、無くてもいいのにソース付属してるし
0445デフォルトの名無しさんNGNG
>>444
自分に使いやすく改造してからでないとMFCなんぞとても使えん。
0446デフォルトの名無しさんNGNG
そういう話をしてるんじゃないだろ
0447デフォルトの名無しさんNGNG
クラスを第一引数とする関数は、そのクラスのメソッドとしても振舞うって動作は、バグか仕様なのかわかった?
0448デフォルトの名無しさんNGNG
わからん。
けど、クラスを第一引数にしては駄目で、配列を第一引数にするとその配列のメソッド
のように使えるってことは分かった。
std.stringのjoinとかsplitとかperlとかと引数の順番が変わってて、すべて、
文字列が最初に来るようになってるから仕様なんじゃないかと思う。
確認したかったら、ニュースグループに質問してみるしかないと思うけど、
英語苦手なので終わり。なさけなや。これじゃだめなので、英語書いてみる。
チェックしてみてください。機械翻訳ですが、、、。

split("a,b",","); is written to be "a,b".split(",");, and compile passes. Is this specification?
これでよければ、ニュースグループに投げてみます。
0449デフォルトの名無しさんNGNG
>>448
http://www.digitalmars.com/drn-bin/wwwnews?digitalmars.D/1295
<[email protected]>
この話題でしょ?
0450448NGNG
>>449
なるほど。ニュースグループ読んでないのでわかりませんでした。
はずかしー。
読んでみましたが、分からないし悔しい。
すいませんが、どういったないようだったか教えてください。
なんだか、教えて君になっててやだなぁ。
0451デフォルトの名無しさんNGNG
>>450
前略
「これは非常に涼しいと私は考えます。」
以下略
0452デフォルトの名無しさんNGNG
つまりはチャーリーへのお礼のメッセージだな
0453448NGNG
coolくらいはわかるョ!
ビーバス&バッドヘッドで何度も聞いたんで。
大好きな単語だよ。
チャーリーって誰?
声しか聞こえない正体不明の人?
で、仕様なんですか?わかんねぇよう。
Thanks,
448
0454デフォルトの名無しさんNGNG
↓のようなコードが通るのが今ひとつ納得できない、、、

import std.c.stdio;
int main(){
hoge();
return 0;
}

void hoge(){
void hoge(){ printf("hoge\n"); }

hoge(); // どっちのhoge()を呼んでいる?
}

――実行例――――――――
hoge
―――――――――――――

dmd v0.88で確認。
名前解決できずにコンパイルエラー、にはならないのかな。

あと全然上の話題とは関係ないけれど、先日yaneSDK4Dのytl/vectorで-releaseオプションを付けないでビルドするとリンクエラーが出る症状に出会ってしまって
原因を特定するまで延々とハマってました。まる。
0455ヽ(´ー`)ノ ◆.ogCuANUcE NGNG
>>454
普通に考えたら scope 的に近い、関数内関数の方だと思う。


class A {
    int x;
    
    this(int x) {
        // x は 引き数の x
        this.x = x;
    }
}

…と同じ問題と考えれば納得行くかと。

// this に相当するモノがないから、recursive call したい時に困る気がするが。
0456デフォルトの名無しさんNGNG
親参照できないの?::みたく
0457デフォルトの名無しさんNGNG
グローバルな名前空間という意味なら . が使える
基底クラスのメンバ関数を明示的に、ならクラスの識別子を使う
0458デフォルトの名無しさんNGNG
int main(){
 if(test && test){ }
 return 0;
}

bool test(){
 return true;
}
======================================
test.d(2): bit() does not have a boolean value

プロパティ使うのに困る。
0459デフォルトの名無しさんNGNG
プロパティの設定してないだけとか
0460デフォルトの名無しさんNGNG
D言語のMixin凄いと思うんだけど、このスレではスルーだね。
結構ありきたりなのかな?
0461デフォルトの名無しさんNGNG
>>460
単なる define じゃん。スコープもひとつ持ち上がるし、混乱の元になると思う。
0462デフォルトの名無しさんNGNG
ちゃくちゃくとバージョンが1に近づいているわけですが・・・
ライブラリさっぱりな現状でも1を名乗って大丈夫なの?
趣味グラマ希望の星のDだけにちょっと心配
0463デフォルトの名無しさんNGNG
0.99の次は0.100ですから。
0464デフォルトの名無しさんNGNG
0.991とか。0.999の次は0.9991
0465デフォルトの名無しさんNGNG
0.99の次は-0.99です。次に-0.98になります。
0466デフォルトの名無しさんNGNG
補数みたいやな…
0467デフォルトの名無しさんNGNG
作者が死ぬと version 1 になります。
0468デフォルトの名無しさんNGNG
趣味グラマ御用達言語ということは、HSPと争う事になるわけだ
0469デフォルトの名無しさんNGNG
やっぱり趣味グラマ専用か。糞だと思ってたよ最初から。
0470デフォルトの名無しさんNGNG
phobos自分で作れますか?
なんかobject.dのコンパイルがうまくいきません。
class ClassInfo : Object のコンパイルで死んでる?
0471470NGNG
他の人の環境ではどうでしょう。
dmd -c object.dでコンパイル出来ます?
src/phobos/object.d って奴です。
自分の使ったコンパイラは0.90の物で、コンパイル時に

Assertion failure: '!needThis()' on line 135 in file 'tocsym.c'

abnormal program termination

というエラーが出ます。
0472デフォルトの名無しさんNGNG
>>471
Dのことは初心者だけど、
同じことを試してみたら、同様のエラーになりました。参考までに。
0473470NGNG
>>472
テストありがとうございます。
さてどうしたものかな。
0474デフォルトの名無しさんNGNG
>>471
dのfrontendでやってることと同じようなことをやればいいのではないかと思います。
cygwin用のものなら作りました。
きっと、autoconfとかわからないとつらいんだと思いますが、、、。
0475デフォルトの名無しさんNGNG
typeof キタ━━━━(゚∀゚)━━━━ !!!!!
0476デフォルトの名無しさんNGNG
>>427は早く死ね
0477デフォルトの名無しさんNGNG
バリアント的な使い方してるな・・・
0478470NGNG
>>474
最新版の0.91ではコンパイルに成功するようになりました。
前のバージョンに何か問題があったのかもしれません。
お騒がせしました。
0479デフォルトの名無しさんNGNG
クラスの継承関係に依存しないインタフェースプログラムが作れるとか?
いや便利かどうかはさておいて。
0480本7NGNG
マニアックな方向に機能拡張されすぎてc++と同じ道を辿りそうになってきたな。

とりあえず俺はC+GC+クラスって以上の使い方は避けるようにするが。
いちおう期待してるんで仕事で使ってみて実戦テストしてみるけど。
Dを採用して金になる方法を作らねばな。
0481デフォルトの名無しさんNGNG
>>1は綴りを間違えやすい方ですね。
D言語って何ですか?C言語の間違いですか?
0482デフォルトの名無しさんNGNG
開発環境次第だな。
立場的には安定性のあるDelphyみたいな扱いか。
0483デフォルトの名無しさんNGNG
開発スタイルがXPで、ネイティブコードである必要が在るサーバーなどの開発なら文句なしでD言語だね
0484デフォルトの名無しさんNGNG
opCastが追加されたので、ちょっと嬉しかったのだが、
> there can be only one opCast per struct or class.
うーん、、、
0485デフォルトの名無しさんNGNG
>>462
VisualC1.0が完璧だったと?
0486デフォルトの名無しさんNGNG
某OSなんかバージョンが4桁になってようやくマシになった感じだしな。
0487デフォルトの名無しさんNGNG
>>485
うちの会社にはなぜかVC++1.5がなくていつまでもVC++1.0
MS-DOSやWin16用のコンパイル環境としてしばらく重宝してたっけな
さすがに最近はつかわないけどね

>>486
Windows2000のことなら実質WNT5だから
もともとマシだったと思うけど
0488デフォルトの名無しさんNGNG
なぜかlibmysqlclient.soとのリンクに失敗する。
0489デフォルトの名無しさんNGNG
extrn (C)を使うときは特別な指定を加えなきゃいけなくなったの?
0490デフォルトの名無しさんNGNG
位置づけ的にperlに対するrubyみたいな言語だな
かぶりまくりでとても流行る気がしない
0491デフォルトの名無しさんNGNG
IDEとライブラリ次第。サーバーとしての需要はある。
0492デフォルトの名無しさんNGNG
Apacheのレプリカ作ってみようかなぁ。
0493デフォルトの名無しさんNGNG
同一プラットフォームなのに移植なんてあふぉらしいだろ
トランスレーター作れよ
0494デフォルトの名無しさんNGNG
同一言語なのに移植なんてあふぉらしいだろ
トランスレーター作れよ
0495デフォルトの名無しさんNGNG
GUIライブラリはどのくらい機能があるの?
SWTと同じようなラッピングが主体?
0496デフォルトの名無しさんNGNG
>>495
んなもんD自体にあるわけないだろ
0497デフォルトの名無しさんNGNG
テンプレートはどこまでを標準にするんだ?boost相当?
0498デフォルトの名無しさんNGNG
ここには商用と非商用の区別のつかない人はいませんか?
0499デフォルトの名無しさんNGNG
まともな実行ファイルが吐き出せるなら全部商用だよ
Rubyとかも気象庁とかで使われてたとかって話があったような
0500デフォルトの名無しさんNGNG
金が取れる水準のもの=商用ってわけじゃないと思うんだが。
0501デフォルトの名無しさんNGNG
cgi開発用に、
cygwin->freeBSD用のクロスコンパイラの作り方をまとめました。
aaacafeで使えます。
D言語用に作ったのですが、c,c++も動きます。c,c++だけにしたければオプションでそうできます。
http://www.wikiroom.com/sakurai/?freebsd%A5%AF%A5%ED%A5%B9%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB
参考にしてください。

また、クロスコンパイラのバイナリ配信をしています。
http://www.wikiroom.com/sakurai/?freebsd%A5%AF%A5%ED%A5%B9%A5%B3%A5%F3%A5%D1%A5%A4%A5%E9%A5%D0%A5%A4%A5%CA%A5%EA
c,c++,dをfreebsd用にコンパイルできます。
linux用も作ろうと思っていますが先人の知恵があるのでこれ理解してからにしようと思っています。
インストール手順もずっと楽になりました。

これで、問題のあるCGI作ってサーバー止めたりするようなCGI作らないでくださいね。
0502デフォルトの名無しさんNGNG
>>499
そんな事実はない。
0503デフォルトの名無しさんNGNG
>>502
ttp://ruby.gfd-dennou.org/workshop200303/
0504デフォルトの名無しさんNGNG
>>503
>>502がどっちに対していったのかは知らないが、>>499の2行目はともかく1行目は事実だろ。
有料なら商用、無料なら非商用。
0505デフォルトの名無しさんNGNG
J2SEとか非商用だったんだ。
0506デフォルトの名無しさんNGNG
エデュケーションパックとか特別なコンパイラ以外は全部商用可能だろ
0507デフォルトの名無しさんNGNG
PerlライセンスとNYSLとの違いを教えてください。
Jcodeの一部分をほとんどコピペで終わらせてるので、
DJcodeのライセンスをしっかりしたいのですが、よくわからないのです。

0508デフォルトの名無しさんNGNG
>>507
なぜNYSLが出てくるか分からないが、PerlのライセンスはGPLと
ArtisticLicenseのデュアルライセンス。後者は修正したら元と同じ
名前は使っちゃだめよ、という感じ(タブン
詳しくは自分で調べてくれ...
0509デフォルトの名無しさんNGNG
ArtisticLicense2.0もGPLみたいなもんらしいが
0510デフォルトの名無しさんNGNG
bit[] k;
k ~= 1;
k ~= 1;
printf("%d\n",k[0]);
printf("%d\n",k[1]);

実行結果

1
0


バグってる?
俺のミス?
0511デフォルトの名無しさんNGNG
k[] ~= 1;
じゃないのか?
0512デフォルトの名無しさんNGNG
配列演算子ってそういう使い方ができるのか
pop()にあたる処理はどう書くの?deleteじゃないと無理?
0513デフォルトの名無しさんNGNG
k[] = 10;でkの中身全部を10にできなかったっけ?
それを応用してぇ。。。とか
0514デフォルトの名無しさんNGNG
久しぶりに物理シミュレーションでもして遊ぶかと思って、
ついでにDMDどーなったかなーと思って公式行ってみたら
Mixin実装されてやんの。

俺的にはキターーーーーーーーー!

だったんだけど、このスレに来たらみんなさめまくりだし。
0515デフォルトの名無しさんNGNG
>510
void main(){
bit[] k;
for(int i=0;i<8*20;i++)
k ~= 1,printf("%d ",k[i]);
}

これを動かしてみよう。
0516デフォルトの名無しさんNGNG
0.92キター
うれしい改善点が多い。
0517デフォルトの名無しさんNGNG
>>516
おお、本当だ。
キタ━━━━━━(゚∀゚)━━━━━━ !!

What's New for D 0.92
Jun 4, 2004
New/Changed Features
Modified Object.toString() and Object.print() to print out the name of the object instance's class.
The Expression within an array's brackets is now an AssignExpression (meaning that commas are no longer allowed).
Added default arguments to function parameters. Semantics are like C++.
Added package attribute for package level access.
Added operator overloads opAdd_r, opMul_r, opAnd_r, opOr_r, and opXor_r.
Modified overloading rules so functionality can be added to the lvalue of an operator overload for user defined rvalues without needing to modify the lvalue's class.
Bugs Fixed
Fixed parsing bug in typeof(this).func();
Fixed nested multiple inheritance bug with interfaces.
Fixed compare() bug in typeinfo's for int and uint. Thanks to Stewart Gordon.
0518デフォルトの名無しさんNGNG
日本語訳頼むって云ったら怒る?
0519デフォルトの名無しさんNGNG
AddedとFixedだけ読めば大体わかるっしょ。
0520デフォルトの名無しさんNGNG
ますますC++に近づいてるような・・・w
0521510NGNG
8ビット毎に1………?
訳わからん、長さ伸ばして代入するわ。
0522デフォルトの名無しさんNGNG
デフォルト引数キター
0523デフォルトの名無しさんNGNG
C# 2.0と比べると大分見劣りするね
0524デフォルトの名無しさんNGNG
今回のバージョンうぷはうれぴー。
0525デフォルトの名無しさんNGNG
デフォルト引数も演算子オーバーロードもぶっちゃけ新しい要素じゃないからバグフィクスのみと考えよう
0526デフォルトの名無しさんNGNG
テンプレートは絶やめて欲しい。
あとDBまわりを強化して欲しい。

Apacheヘッダまわりは俺が担当するから。
0527デフォルトの名無しさんNGNG
デフォルト引数はバグの元
0528デフォルトの名無しさんNGNG
デフォルト値が存在する関数以外でデフォルト値を設けようとしない限りはバグら無いよ

0529デフォルトの名無しさんNGNG
D言語は、「コンパイルするにはライブラリのソースが必要」ってスタンスなのかな?
デフォルト引数にしろ、マクロ並みのテンプレートにしろ、バイナリ化はできないよね?
0530デフォルトの名無しさんNGNG
Cのオブジェクトにはリンクできるんじゃなかったっけ?んでC++はダメーみたいな。
試した事ないから良く分からんけど
0531デフォルトの名無しさんNGNG
Dで書かれたライブラリの話です。
Cにはデフォルト引数もテンプレートも無いですし。
0532デフォルトの名無しさんNGNG
そもそもテンプレートってものはコンパイラが分析して
使われる型の分だけクラスや関数を作るものじゃなかったっけ?
typeofとか駆使すればバリアブルに出来るのかなぁ
0533デフォルトの名無しさんNGNG
>>529
デフォルト引数の場合は、宣言のみのソースとともにコンパイルする。

module test;
void defaultvalue(int i = 20) { printf("%d\n",i);

というのからobjを作っておいて、

module test;
void defaultvalue(int i = 20);

というのを一緒にコンパイルする。
0534デフォルトの名無しさんNGNG
二箇所に同じようなのを書かないといけないの?
駄目駄目じゃん
0535デフォルトの名無しさんNGNG
ダメダメってか、Libと同じようなもんだろ?
0536デフォルトの名無しさんNGNG
デフォ引数もだけど、名前付き引数対応して欲しいなあ。
0537デフォルトの名無しさんNGNG
>>534
これは、誰かがソースから宣言だけを抜き出すツールを作ってくれれば解決するんだが・・・。
0538デフォルトの名無しさんNGNG
>>533
「宣言のみのソース」って、つまりヘッダファイルのことですか?
0539デフォルトの名無しさんNGNG
Win32版の調子が悪いんだが俺だけか?
std.fileとかをimportするとリンカがシンボルが重複しているとか言って怒る。
0540デフォルトの名無しさんNGNG
クラスの定義だけ取り出すツールがあればと思ったら、すでに書いてあった。
ddocとかもほしいし、そういったことが作れる人が一人いればすむ話なんでしょうなぁ。
俺は、つくりたいけど、頭悪いので作れない派です。なさけなや。
せめて仕様だけでも、書いて置くと良いのかなと思ったりする今日この頃。
0541デフォルトの名無しさんNGNG
>>538
なんかトレンドに逆行してるな・・・
デフォルト引数の情報はobjが持つべきだろう。

思いつきの泥縄的に仕様追加していくとC++的混乱に陥るような。
0542デフォルトの名無しさんNGNG
>>541
objに持ちようがないんですが、、、、
0543デフォルトの名無しさんNGNG
持つことは可能だと思われ。
ただ、どちらにせよそのobjを使用するための定義が必要なので
あまり意味はないと思われるが。
0544デフォルトの名無しさんNGNG
>ただ、どちらにせよそのobjを使用するための定義が必要なので
その定義がテキストである必要はまったくないが。
コンパイラがobjから直接読み取れればそれで十分。
まともなヘルプやドキュメンテーションツールとIDEがあるならね。
0545デフォルトの名無しさんNGNG
イメージとしては、Javaのclassファイルのようなものかな。
0546デフォルトの名無しさんNGNG
早く仕様確定しないと終わってしまうぞ。
いまの状態じゃあそびにしかつかえんし。
それにしてもC#よくできてるぞ。
0547デフォルトの名無しさんNGNG
今回か前回か知らんけど、
クラスhogeのプロパティhoge.proをforeachに食わせるとき、
 foreach( ...; hoge.pro()){ ... }
としなければならなかったのが、
 foreach( ... ; hoge.pro ){ ... }
と出来るようになってるな。


hoge.pro()と、プロパティを関数として呼び出せなくなってるがな。
修正マンドクセ(´A`)
0548デフォルトの名無しさんNGNG
まープロパティならそうアクセスできなきゃおかしいし
0549デフォルトの名無しさんNGNG
明示的にプロパティとする構文が欲しいかも。
でも、シームレスに扱えるのが特長だからいらんか。
0550デフォルトの名無しさんNGNG
これってゲッターセッターってある?
契約のin-out-bodyみたく getter-setterで宣言できないものかね
0551デフォルトの名無しさんNGNG
property int hoge{
 /* getter */
}(int v){
 /* setter */
}(double v){
 /* setter */
}(int[] v){
 /* setter */
}(temp!<int> v){
 /* setter */
}


こうですか? 分かりません!
0552デフォルトの名無しさんNGNG
冗長だなあ。。。
ドキュメントによると、
class Hoge {
public int hogehoge;
}
Hoge hoge = new Hoge()

とあって、
hoge.hogehoge = 1;
と書いてあったとき、

class Hoge {
public:
int hogehoge() { return hage; }
void hogehoge(int i) { hage = i; }
private:
int hage;
}

と変更してもそのまま使えるとか書いてあった。
0553デフォルトの名無しさんNGNG
int hoge(int n) {
getter { return m_n; }
setter { m_n=n; return this.hoge; }
}

こんな感じにしてほしいw
0554デフォルトの名無しさんNGNG
>>553
C#風やね。>>552 に対するメリットは?
0555デフォルトの名無しさんNGNG
>>554
void hogehoge(int i) { hage = i; }
がセッターを意図してないのに
hogehoge = 1 で通ってしまうような事はなくなるんじゃない?
0556デフォルトの名無しさんNGNG
Newsgroupsによるとまた仕様変更らすい・・・

C[1,2,3] = value;

opAssignIndex(type value,int index,int index2,int index3) { }

とかできるようになるのかなあ。。。
0557デフォルトの名無しさんNGNG
この細かい変更具合からすると、今出回っているのはαのver0.92だな
0558デフォルトの名無しさんNGNG
まずgetterに引数宣言など冗長だ。
よって>>552(デフォルト)は却下だ!
そしてsetterは複数型のrvalueをとりうる。
よって>>553など却下だ!

>>551のどこに冗長性があるのか>>552に小一時間問い詰めたい。
0559デフォルトの名無しさんNGNG
>>558
今ようやく構文を理解したw
なるほど、面白いw
0560デフォルトの名無しさんNGNG
getterをpublicにしてsetterをprotectedにしたい時は?
0561デフォルトの名無しさんNGNG
>>560
うーん、こうかぁ? ダサいな。
protected property public int hoge{ /* public getter */ }
 (int v){ /* protected setter */ }
 (double v){ /* protected setter */ }
 public (int[] v){ /* public setter */ }
 (temp!<int> v){ /* protected setter */ }

こっちかね。
protected:
 property hoge{
  public int{ /* public getter */ }
  (int v){ /* protected setter */ }
  (double v){ /* protected setter */ }
  public:
   (int[] v){ /* public setter */ }
   (temp!<int> v){ /* public setter */ }
 }

さあ泥沼の様相を呈して参りました。
0562デフォルトの名無しさんNGNG
property int hoge(in) {
getter { return m_n; }
setter (int n) {}
protected:
setter (double n) {}
}
0563デフォルトの名無しさんNGNG
こんなバグ、テストで検出できるか自信無いぞ。

property int hoge{

 /* hoge's getter */
 property double moge{
  /* moge's getter */
 }(double v){
  /* moge's setter */
 // }

}(int v){
 /* hoge's setter ? */
}
0564デフォルトの名無しさんNGNG
Delphiの配列プロパティみたいなのはできないの?
0565デフォルトの名無しさんNGNG
いろいろごまかしてみたけど、
class HogeArray {
public:
this(int i) { m_hoge.length = i; }
int opIndex(int i) { return m_hoge[i]; }
int opIndex(int i,int v) { return m_hoge[i] = v; }
private:
int[] m_hoge;
}

class Hoge {
public:
this(int i) { m_hogeArray = new HogeArray(i); }
HogeArray hoge() { return m_hogeArray; }
private:
HogeArray m_hogeArray;
}

int main() {
Hoge hoge = new Hoge(10);
hoge.hoge()[1] = 20; // ()が無いとダメ
printf("%d\n",hoge.hoge[1]);
return 0;
}
0566デフォルトの名無しさんNGNG
本家のフォーラムではこのゲッター・セッターの議論って出てるの?
デフォルト引数が採用された以上は、ここら辺の仕様をきっちり作って欲しいな
0567デフォルトの名無しさんNGNG
何度も。
例えば
http://www.digitalmars.com/drn-bin/wwwnews?D/28801
ここから続くスレとか。
0568デフォルトの名無しさんNGNG
void setColor(long color, int alpha = 100){};
で
hoge.setColor = 0x00FFFFFF;
が可能なのは何かやだな、慣れの問題?
0569デフォルトの名無しさんNGNG
なんで仕様確定する必要あるのかね
そんなもん要らない

いい方にしか仕様は変わらないんだから、
それに合わせてコード直してやればいいだけの話。
0570デフォルトの名無しさんNGNG
>>569
じゃあ毎月60000行の修正よろしく。
0571デフォルトの名無しさんNGNG

0572デフォルトの名無しさんNGNG
>>1
[C]言語の間違いだろ?ネタ?
0573デフォルトの名無しさんNGNG
>>572
              ''"::::::::::::::::::::ヽ
         \   ∠::::ノ│ヘ::::::::::::: ヽ|ヽ ====
          \ / ●   ゞ::::::::::゙ |、|  ======
           '\       ─:::∪:: |、|
         ∠::|  X\   ● イ:::::|-|    そんなエサで私がネヴァ――!!☆
         ∠::、(_/     "/:::i/⌒l
            /\    ∪/::::i/ ̄/  =====
            〈  `ー┬イ::::∠ _ノ  ====
            \ \_ネヴァダ  \
0574デフォルトの名無しさんNGNG
この言語はフォームデザイナって開発されてる?
リソース周りの扱いを紹介してるサンプルソースとかあったら教えてくだせぇ
0575デフォルトの名無しさんNGNG
ない
GUI周りはまだ整ってない
0576デフォルトの名無しさんNGNG
>>574
そもそもGUIライブラリ自体が(ry
0577デフォルトの名無しさんNGNG
DIDEがコードセットやフォントなどの設定を保存してくれないばかりか
何かと不正終了を起こして使えなさ過ぎる・・・

何か他にオススメのIDEってあります?
0578デフォルトの名無しさんNGNG
ない
0579デフォルトの名無しさんNGNG
ないのか。ならエディタで作るか。
いい機会だからセレクト鯖でも作って見るよ。
0580デフォルトの名無しさんNGNG
phobos.libがSymbol Undefinedを大量に吐いてどうにもならない
ライブラリは環境変数LIBに予め指定してあるのにどうして・・・おrz
0581デフォルトの名無しさんNGNG
D言語の依存関係生成ツールってない?
makefileの形式で吐いてくれるようなやつ。
0582580NGNG
自己解決。スマ祖。
0583デフォルトの名無しさんNGNG
Dのselectも値-結果引数なのか。
ほぼそのままCをラップしてますな。
こういうところはDの配列スライスが嬉しいね。
0584583NGNG
SocketSetはSocket配列での登録も取得もないから配列スライス関係ない orz
英語できたら要望だしたところだが・・・
0585デフォルトの名無しさんNGNG
DIDEが終了時落ちるのはVer0.995になってからだな。
古いのに戻したくても置いてないからどうしようもないし。
ところで、公式の所のyahooのグループって誰か見てる人いる?
日本語の対応予定とかどうなってんだろ。
0586デフォルトの名無しさんNGNG
D言語を初めて使ってみたんだが
http://www.kmonos.net/alang/etc/d.php#install
C:\standalone\dlanguage\dmd にD言語コンパイラを置いた。dmもあれで上書きした。

コンパイルしてみたら早速こんなメッセージが出た。

C:\users\test\D>dmd hoge.d
Error: Error reading file 'c\stdio.d'


import c.stdio;が原因なのかと思い、これを取り除いた。すると、
C:\users\test\D>dmd hoge.d
C:\standalone\dlanguage\dmd\bin\..\..\dm\bin\link.exe hoge,,,user32+kernel32/noi
;

C:\users\test\D>

となってコンパイルできたらしい。hoge.exeではろわーるどが出た。
c.stdioが激しく気になってしまう。なんすかこれは?
0587デフォルトの名無しさんNGNG
こんどは二つ目のサンプルプログラム
import stream;のやつをやってみたんだが、

C:\users\test\D>dmd hoge2.d
Error: Error reading file 'stream.d'

だってよ。JavaとかみたいにCLASSPATH指定みたいなのがいるのか?

0588デフォルトの名無しさんNGNG
この記事は2002年11月時点のD言語に基づいているため、 大分古くなってきています。
0589デフォルトの名無しさんNGNG
>>586
import std.c.stdio; //Cのstdioを直接ラップしたモジュール
import std.stream; //D版のC++ iostreamみたなもん
0590デフォルトの名無しさんNGNG
クラスのコピーってどうやるの?
もしかしてコピコン作ったクラスだけしかコピーできない?
0591デフォルトの名無しさんNGNG
まー早い話、とりあえず困ったときくらい仕様読めよってことだな。
0592デフォルトの名無しさんNGNG
>>590
データの集約したいなら構造体使うほうが理に適っていると思うがどうか。
0593デフォルトの名無しさんNGNG
>>592
デザパタのプロトタイプパターンがしたいのだが。
0594デフォルトの名無しさんNGNG
馬鹿ちょんdeep copyなんぞありはしない
0595デフォルトの名無しさんNGNG
>>594
クラス構造しだいだろ
0596デフォルトの名無しさんNGNG
Dの標準ライブラリでは高性能なサーバーは作れなさそうだな
kqueueなんかをどうSocketクラスと結び付けるかが難しい・・・
0597デフォルトの名無しさんNGNG
ループ毎に1000以上もSocketSet.addやSocketSet.isSetをしてたらselectする意味ないわな
これならthreadの方がまだマシか?
0598デフォルトの名無しさんNGNG
>>590
JavaのObject#clone()でもやんの?
D言語には無い?
0599デフォルトの名無しさんNGNG
>>589
(・∀・)サンクス ウゴイタンス!
0600デフォルトの名無しさんNGNG
>>592
今時構造体なんか……使っていられるかw
0601デフォルトの名無しさんNGNG
>>590
不変クラスにすれば簡単にできる
0602デフォルトの名無しさんNGNG
>>598
> JavaのObject#clone()でもやんの?
> D言語には無い?
ないね。
0603デフォルトの名無しさんNGNG
>>601
作る側の問題じゃなくて作られたもののコピーの話でしょう。
0604デフォルトの名無しさんNGNG
>>600
俺は、単純な矩形をクラスで管理したくはないな。
0605デフォルトの名無しさんNGNG
このスレでいう構造体って、メンバ変数がpublicなクラスってことでいいんだよね?
0606デフォルトの名無しさんNGNG
仕様をよく読めば分かるけど、必ずしもそうじゃないのが困りもの。
0607デフォルトの名無しさんNGNG
値渡しされるクラスという考えはC++時代もあったな
shallow copyがお手軽に出来るという利点もある
0608デフォルトの名無しさんNGNG
D言語には鯖開発の筆頭として期待してたけど、
一連の流れを見るにまだライブラリが弱すぎて使えないみたいだね

boostのようなライブラリが登場するのはいつからかな
0609デフォルトの名無しさんNGNG
>>602
Cloneableインターフェースも実装できないのか?
0610デフォルトの名無しさんNGNG
>>608
boost の中の何を期待しているんだ?
幾つかの機能は既に言語仕様やphobosに取り込まれてるだろ?
0611デフォルトの名無しさんNGNG
>>604
カプセル化できんし他人に勝手に継承されるし
あぶないやんか
0612デフォルトの名無しさんNGNG
>>607
deepでなくて?
0613デフォルトの名無しさんNGNG
>>612
配列がchar[] hogeだったらshallowにならへん?
0614デフォルトの名無しさんNGNG
>>610
いろいろあるんだよ、角度とか
0615デフォルトの名無しさんNGNG
regexpとかあるから鯖の作りやすさは折り紙付きだな
kqueueやdev/pollをラップした強力なライブラリが実装できるなら・・・
0616デフォルトの名無しさんNGNG
>>615
作って。オナガイ。

質問
template Loop(int n:0, alias X) {
 void f() {}
}

template Loop(int n, alias X) {
 void f() { X(); Loop!(n-1,X).f(); }
}

これコンパイルできない理由というか背景を教えてくれー
0617616NGNG
実体化忘れた
void g() { printf("hoge\n"); }
int main() { Loop!(5, g).f(); }
Loop!(0,g)にマッチするテンプレートがひとつ以上ある、と怒られる。
0618デフォルトの名無しさんNGNG
>>616
// template Loop(int n:0, alias X) {
aliasがここにあるのはいいの?
0619デフォルトの名無しさんNGNG
Loop(int,alias)が二つあるんだからそらそうだろ。
0620デフォルトの名無しさんNGNG
>>616
>int n:0
こんなこと出来るの?
0621デフォルトの名無しさんNGNG
templateの再帰のサンプルでさえ既に俺にはお手上げw
0622デフォルトの名無しさんNGNG
あれは結局何が代入されたんだろうね
const factorial = 24 をどこかでたくさん生成したのか?
わかんないから、やねうらお氏あたりが教えてくれるのを待とう(こら
0623デフォルトの名無しさんNGNG
enum {abc = 1}
enum {abc = 2}
enum {abc = 3}
enum {abc = 4}
enum {abc = 5}
enum {abc = 6}

int main()
{
    printf("%d",abc);
    return 0;
}

としてもabcは1が帰ってくるね・・・うーむw
0624デフォルトの名無しさんNGNG
>>623
それはまずい仕様だね。コンパイルエラーが妥当だと思う。

>>619
おいらにはそらそうだろう、ってほど直感的じゃない。

template Loop2(int N:0, T) {
 void f() {}
}

template Loop2(int N, T) {
 void f() { (new T)(); Loop2!(N-1, T).f(); }
}

class Hello { void opCall() { printf("hello\n"); } }

int main()
{
 printf("start\n");
 Loop2!(5, Hello).f();
 return 0;
}

Loop2がよくてLoopがダメな理由がよく分からないという話。
>>618 >>620 仕様書読んでくれ。
0625デフォルトの名無しさんNGNG
templateの使い方を纏めたページがいるね
Wikiあたりに誰か投稿してくれー
0626デフォルトの名無しさんNGNG
aliasパラメタ

aliasパラメタによって、テンプレートの引数に様々な D のシンボルを受け取るようにできます。
alias パラメタに使えるシンボルはグローバル名と型名、テンプレート名、 テンプレートインスタンスの名前で、ローカル名は使用できません。
この機能は、C++におけるテンプレート・テンプレート引数の拡張版となっています。


関数は「型」じゃないとかそういう制約か?
0627デフォルトの名無しさんNGNG
シンボルの同一性チェックができれば、嬉しいような、そうでもないような。

//is_same_symbolはコンパイルタイムに決まる定数
int x=1; alias x ax; alias ax aax; int y = x;
printf("%d\n", is_same_symbol(x,ax)); // 1
printf("%d\n", is_same_symbol(x,aax)); // 1
printf("%d\n", is_same_symbol(x,y)); // 0

is_type(alias X), is_constant(alias X)もあれば嬉しいかな〜。
is_template, is_template_instanceもあってもいいかも。
テンプレートの特殊化で直接指定できたほうがいいかな。
template(type_alias X) {...} // type_aliasはaliasの特殊化として扱われる
// Xが型でなければマッチに失敗。
template(aliax X;=x) {...} // Xがxと同一シンボルならマッチ

そんな機能何に使うのってきかれると、答えに詰まっちゃうけどね。
0628デフォルトの名無しさんNGNG
関数ポインタをtemplateでalias以外の方法で使うにはどうすればいいの?
template Hoge(void function() fx){} ではダメみたい
0629デフォルトの名無しさんNGNG
>>624
単純にaliasパラメタからaliasパラメタに値が渡せないだけじゃないかな
alias alias def_alias;ってやってもコンパイルできないし
0630デフォルトの名無しさんNGNG
sampleのlistener.dはメモリリークのいいテストになるね。
このままだとリークしっぱなしだから、fullCollect()をループの最後に挿入。
タスクマネージャでプロセスを眺めてもメモリ使用量がほぼ一定してるのが分かる。
0631デフォルトの名無しさんNGNG
>>630
仕様上はメモリリークじゃないよ。解放の遅延。
0632デフォルトの名無しさんNGNG
Dのテンプレートが期待通りに動いてくれない〜。
ベータだからなのか、凡ミスなのか。

template Cons(T, U) {
 struct Cons {
  alias T type;
  alias U next;
 }
}

alias Cons!(char, Nil) Char;
alias Cons!(short, Char) Short;

alias Short.next.type A; //no property 'type' for type 'Cons'

int main() { return A.max; }
0633632NGNG
struct Nil { alias Nil type; } 入れ忘れた。
0634デフォルトの名無しさんNGNG
template Cons(T, U) {
    struct Cons {
        T type;
        U next;
    }
}

struct NullCons {
    int type = -1;
    int next = -1;
}

Cons!(int,Cons!(int,NullCons)) WINT;

int main()
{
    printf("NullCons %d",WINT.next.next);
    typeof(WINT.type) myInt = 3;
    return myInt;
}

こういう使い方なら正しく動いた。
632氏のお望みの処理かは不明だけどw
0635デフォルトの名無しさんNGNG
struct NullCons {
int type;
Cons!(int,Cons!(int,typeof(this))) next;
}

にすれば循環するっぽいが、structは実体を持つはずなのになんで?w
0636デフォルトの名無しさんNGNG
サーバ開発とかネットワークプログラミング全般って、D選ぶのもそれはそれでいいが、しかし
よりLightweightに、いろんなOSで動かしてテストしやすいようにしたいとか、そういうことであれば、
Dより、Rubyとかのほうがいいんじゃないかね。ライブラリも揃ってるし。
0637デフォルトの名無しさんNGNG
新しい言語で遊ぶのが楽しいんだよw
0638デフォルトの名無しさんNGNG
Rubyってランタイムで動いてるんじゃないの?
知らないからアホなこと言ってるかも知れんけど
0639デフォルトの名無しさんNGNG
>>638
ランタイムも何もRubyってインタプリタ言語じゃなかったっけ?
0640デフォルトの名無しさんNGNG
んだんだ
0641デフォルトの名無しさんNGNG
dmd.zipの古いバージョンって無いんでしょうか?
PARSEC47をコンパイルしたいんですが、unstableすぎるのか現行のだとコンパイルできないんで…
0642デフォルトの名無しさんNGNG
私は、CGIをDでがんがるつもりでいるので、サーバー処理もDでいけるんじゃないか派です。
0643デフォルトの名無しさんNGNG
>>642
(゚Д゚)ハァ?
0644デフォルトの名無しさんNGNG
>>643
パフォーマンスと手軽さを考えた場合
DでCGI書くのは結構いいかも知れない。
0645デフォルトの名無しさんNGNG
ISAPIやmod_perlのようなカラクリを作るならDの特徴が生かされるだろうね
サーバーとしてはHTTPDで無ければいけると思われ
0646デフォルトの名無しさんNGNG
0.93来てますね
0647デフォルトの名無しさんNGNG
Dで使える有用なライブラリ、コードの一覧とか欲しいね
libってC版ならそのまま使えるんだっけか?
0648デフォルトの名無しさんNGNG
>>641
v.0.74 と 0.79, 0.80 なら持っているが、PERSEC47っていくつでコンパイルできたっけか。
0649デフォルトの名無しさんNGNG
CGIにDって発想が間違ってる気がするが

素直にperlかphpにしとけよ
つかCGIじゃなくていいんならJavaか.NETにしとけ

下らない仕事は手軽に片付けてナンボだ
いちいちセッションハンドリングだのクラスタリングだのの面倒みたいか?今更
俺はC++で書かれたCGIコードの移植をさせられて反吐が出そうになったぞ
しかもパフォーマンスが出ないからといってRPCまで使ってやがる
0650デフォルトの名無しさんNGNG
>>649
> つかCGIじゃなくていいんならJavaか.NETにしとけ
意味不明なのだが
0651デフォルトの名無しさんNGNG
>>650
らくで
効率もよくて
ウンザリするほど周辺環境がととのっていて
サンプルも豊富だから
そんだけ

0652デフォルトの名無しさんNGNG
あ、すまん
「意味不明」の理由が何となく分かった
Javaや.NETでもCGIプログラムは作れるけど、意味はない

ふつーはservletやjspやASP.NET(WebForm)やWebServiceだ
「そのようなもののコンテナを利用できるなら」という意味だよ
「CGIでなくていいなら」という意味は
0653デフォルトの名無しさんNGNG
しかしJavaや.NET(てかIIS)はレンタル鯖では使われないからな
うちはFreeBSD鯖を借りてて、telnet経由でcgi作れるからDは歓迎

まあ自宅鯖ならApache+mod_perl一択だな
0654デフォルトの名無しさんNGNG
>しかしJavaや.NET(てかIIS)はレンタル鯖では使われないからな
好き勝手にバイナリ動かせる鯖もそうないだろ。
Dのバイナリ動かせるならJREも突っ込めそうな気が。
0655デフォルトの名無しさんNGNG
流石にそこまでは触らせてもらえないよw
鯖の為に出来る作業はコンパイルだけさぁ
0656デフォルトの名無しさんNGNG
>>634
LokiやboostのTypeListもどきを作ろうとしてたのでちと違う。

>>635
循環してないよ、それ。循環って↓見たいなやつのことでしょ?
struct Hoge { Hoge hoge; }
635の中のtypeof(this)はNullConsのポインタ型だと思う。
0657デフォルトの名無しさんNGNG
DでCGI
CやC++と違ってperlや、rubyと同様の分かりやすいソースでいけるし、
ネイティブだから起動が高速だ。
クロスコンパイルして、UPすれば、freebsdで無料鯖のaaacafeで公開できる。
いいと思うんだけど。
0658デフォルトの名無しさんNGNG
動かせる鯖を借りてる人はいいね
0659デフォルトの名無しさんNGNG
Javaや.NetはコリコリCGIを書くのとは性質が違う。
アプリケーションサーバーがついてこないといけない。
PerlやPHPは手軽だけど遅い。
CやC++は高速だが、煩雑もしくは、高度なプログラミング知識が必要になる。
Dは、CやC++の後継でCやC++でCGIを作る煩雑な部分を肩代わりしてくれる。
高速CGIを作るにはDが向いていると思う。
0660デフォルトの名無しさんNGNG
分かったからはよ作れ
0661デフォルトの名無しさんNGNG
いや高速CGIではmod系やISAPIには太刀打ちできないからw
それらが使えない鯖での負荷削減として有用なのがDって程度だよ
0662デフォルトの名無しさんNGNG
telnet使えるのはsakura以外にどっかある?
0663デフォルトの名無しさんNGNG
CからDのコードを実行することってできまつか?
実際にやりたいのはCからというより、Cへのインタフェースを
持っている他のスクリプト言語などから使うことなのですが。
0664デフォルトの名無しさんNGNG
DでApache module作るってのは結構有効なんじゃないだろうか
その辺ネイティブバイナリとCとの互換性が効いてくるような
0665デフォルトの名無しさんNGNG
IntraWeb(ボソ
0666デフォルトの名無しさんNGNG
まあモジュールはともかく鯖はepollやkqueueがDに移植されるまでお預けでいいよ
0667デフォルトの名無しさんNGNG
>>663
extern(C) で作ればいけるんじゃないかな。
0668デフォルトの名無しさんNGNG
>>664
それはすごく嫌だなあ
apacheのpool managedな空間に異物が入り込むわけだよね
moduleだからインプロセスで実行される訳だし
0669デフォルトの名無しさんNGNG
mixinの有効な使い方を教えてくださいな
0670デフォルトの名無しさんNGNG
ApatcheモジュールをCで書いて、メモリリークして終了した経験があるので、mod_dとかだれか
作ってくれることを希望。ほとんどCGIと同じ書き方ですむとうれしいな。
0671デフォルトの名無しさんNGNG
>>669
ごく普通に思いつくのは、クラス定義にテンプレートをmixinして
侵入型のリストの実装を埋め込むとか?
基本的には#defineで出来たようなことしか思いつかない。
0672デフォルトの名無しさんNGNG
// 侵入型Tree
template MixinTree(alias compare) {
 private typeof(this)m_left;
 private typeof(this)m_right;
 void insert(typeof(this) obj) {
  if( compare(this, obj) ) {
   if( m_left is null ) m_left = obj; else m_left.insert(obj);
  }
  else {
   if( m_right is null ) m_right = obj; else m_right.insert(obj);
  }
 }
 typeof(this)[] toArray() {
  typeof(this)[] ret;
  if( m_left !== null ) ret ~= m_left.toArray();
  ret ~= this;
  if( m_right !== null ) ret ~= m_right.toArray();
  return ret;
 }
}
0673デフォルトの名無しさんNGNG
class Hoge {
 int n;
 this(int n) { this.n = n; }
 static int compare(Hoge a, Hoge b) { return a.n > b.n; }// 無名で渡すとリンクに失敗する
 mixin MixinTree!(Hoge.compare);
}
int main() {
 Hoge h1 = new Hoge(1); Hoge h2 = new Hoge(2);
 Hoge h3 = new Hoge(3); Hoge h4 = new Hoge(4);
 h2.insert(h4); h2.insert(h1); h2.insert(h3);
 Hoge[] ha = h2.toArray();
 foreach( Hoge h; ha ) { printf("%d\n", h.n); }
 return 0;
}

陳腐な例でスマソ(typeof(this)のおかげで何とかなるのね)。
0674デフォルトの名無しさんNGNG
mixinをつかうなら、mixin用にテンプレートを書かないといけない?
0675デフォルトの名無しさんNGNG
template使える人が羨ましい。
いや、人のは読めるけどね。書けないんだ。
モダンプログラミングは俺には難しいよ orz
0676デフォルトの名無しさんNGNG
関数(またはブロック)毎にGCに回収させる指定があれば嬉しいな。
そのブロック内でのみC++ライクなnew&deleteが行われる仕様。
0677デフォルトの名無しさんNGNG
auto でいいんちゃうん?
つーか、組み込みでもないのに、GCをそこまで細かく制御する必要がある用途って何?
GCに対して「大きなお世話」な気がするんだが。
0678デフォルトの名無しさんNGNG
>>677
C++ライクなnew&deleteは「GCに回収させる」って言わない気が。
要するに今のautoで出来ることを欲しいって言ってるんじゃ?
(>>676は仕様読んでないのかも)
ただautoのdeleteのタイミングはブロックの終わりじゃなくて、
関数が戻るタイミングだった気がするので、その辺は無理かも。
0679デフォルトの名無しさんNGNG
いや、autoは「スコープの終わりにデストラクタが呼ばれる」だけだと思われ。
実際のメモリ回収がいつ行われるかは保証されてないと。

関係ないけど、_argptrと_argumentsは、__argptrと__argumentsにして欲しかったな。
0680デフォルトの名無しさんNGNG
autoはデストラクタのみ
deleteはデストラクタ+ガベコレ

なの?
0681680NGNG
もとい。
autoはスコープの終わりにデストラクタ呼び出し
deleteは即時デストラクタ呼び出し+ガベコレ

deleteの仕様が良く分からない
0682678NGNG
>>679
そかそか、勘違いしてた。というわけで>>676の言いたいこともよく分かった。
>>680
たしかdeleteもデストラクタが呼び出されることしか保証してないんじゃないかな。
(要するにメモリーの回収は後回し)
現状delete呼ぶとvptrまで破壊するみたいで、
deleteされたオブジェクトにアクセスすると落ちちゃうけどね・・・。
またいい加減なこと言ってたりして・・・。
0683デフォルトの名無しさんNGNG
クリティカルな場所はアロケータ・デアロケータをCでつくれっつーことですな
0684デフォルトの名無しさんNGNG
プリミティブってGC関係ないんだっけ?
char[]とかクラスではどうしようもなくGC待ちに成りそうなんだけど
0685デフォルトの名無しさんNGNG
std.c.stdlib.mallocとか使って、char *を使えばいい。
つまり、便利な機能を使うにはGC必須と。
0686デフォルトの名無しさんNGNG
つまりhoge[0 .. 3]は使えないのか
0687デフォルトの名無しさんNGNG
Dの仕様だと、型安全なprintfが作れそうな気がする。
0688デフォルトの名無しさんNGNG
>>676
ゲームやサーバーだとあると嬉しい機能なんだが
0689デフォルトの名無しさんNGNG
>>688
しょうがない、この板はゲーム専用の板ではないから
ゲームなど余り考えられてない。
特に、まだver1が出てないコンパイラについては仕方ないことだと思われ

前に無知な香具師がゲームをバカにしてたしな
#define release(a) a->Release()
と同じような機能が欲しい
って言ったら
テンプレート使えばいいじゃとか言ってな
テンプレートにするとまた別々に型ごと宣言せなあかんから大変だってね。

それもゲームについて考えてないどころかDについてすら知らないってことだったんだな。
0690デフォルトの名無しさんNGNG
>>689
???
0691デフォルトの名無しさんNGNG
solid {} もしくは pack {} でブロック内GCを実装して欲しい
ヒープを別に確保すれば可能だと思う(効率は知らんが)
0692デフォルトの名無しさんNGNG
エクスプローラは重いからエクスプローラではないデスクトップを使いたいけど
D言語でデスクトップを作る事は可能?
0693デフォルトの名無しさんNGNG
ちょっと意味が分からないけど、API用いてリスト読み込めば詳細モードのエクスプローラになるのでは?
0694デフォルトの名無しさんNGNG
>>692
Win32APIを叩けるならなんでもいいんじゃない?
ということでスレ違い。ちなみに、普通デスクトップではなく、シェルと呼ぶのでは?
0695デフォルトの名無しさんNGNG
D言語は楽しそうなのでお勉強をはじめようと思っております。
D Memoでお勉強しようと思いますが現状お勧めのサイトあったら
おせーてください。

ところでこれは既出なのでせうか。
Phobos D Runtime Library 日本語訳
ttp://hp.vector.co.jp/authors/VA031566/d_direct3d9/prframe.html
0696デフォルトの名無しさんNGNG
>>695
オススメはdmdをDLするとサンプルソースが付いてくるので、それを覗くのが手っ取り早いかと。
基本的にC++に良く似てるので、ざっと仕様に目を通してサンプルと見比べるだけで導入完了です。

ちなみにそのリンク先は、日本訳リファレンスの訳者本人が、フレームに切りなおしたページのようですね。
フレームの切りなおしはWikiでもやってるので、好みで使い分けるのがよいかと。
0697デフォルトの名無しさんNGNG
D言語+SDLを今後のプログラムの中心にしようと思ったけど
資料が少なく先は難航しそうだw
0698デフォルトの名無しさんNGNG
>>696
ほほぅ。了解。ってことでサンプル実行・・
って、エラーでまくりですなorz
castとsizeofが割とあたらしいキーワードですかな。

C++はぼんやりとしか知らないんですが
仕様とサンプルとにらめっこしてみまする。

>>697
俺も使ってみたいSDL
0699デフォルトの名無しさんNGNG
>>698
ちなみにD Memoは古いので他のところを参照しましょう。
0700デフォルトの名無しさんNGNG
仕様書の説明読んでいるのでござんすが
o.set = 10;
のように使えること=クラスのプロパティと解釈したのだけど
void func(int x){printf("%d", x);}のようなメソッドも
o.func = 10; みたいに扱えてしまうというのは
いったいどういうことなんでしょうかと・・。

あと、型の項の算術演算時の変換で
ulong ul=100000L;
byte b=-100;
printf("%d", ul+b);は
ulong型に変換されてエライことになるんでは・・と思ったけど
試すと99900というのはこれいかに。
0701デフォルトの名無しさんNGNG
やねうらお氏のところぐらいか?
0702デフォルトの名無しさんNGNG
>>693
なるほど、そうなんでつね。

>>694
Shellは別個でデスクトップだけ再現したいからシェルではないです。
0703デフォルトの名無しさんNGNG
>>700
ちょっと上にも似たような話題があるが、要するにプロパティ自体が構文糖なんじゃないかと。
関数の名前で逃げるとすれば、名詞=プロパティ、動詞=メソッドという考え方が
マッチすると思う。

下の方のやつは、Cの可変個引数だから、intに変換されてるとかじゃない?

>>702
まあ、Win32APIスレとかで聞いたほうがいいんじゃね?
0704デフォルトの名無しさんNGNG
C/C++のリソースエディタはそのまま使いまわせるのかな?
フリーのを探してみるか
0705デフォルトの名無しさんNGNG
リソースはリソースであって、Dとは関係ないから大丈夫。
ただし、ヘッダファイルは使えない・・・ので、Dのソースに書き換える必要がある。
0706デフォルトの名無しさんNGNG
おんや。こっそりとすばやく0.94がリリースだそうですわ。
何がかわったのかしら。
0707デフォルトの名無しさんNGNG
全部bug fixみたいだね。
0708デフォルトの名無しさんNGNG
コード補完がないとWinプログラムってやってらんないな・・・
暗記してる人は平気なのかも知れないが
0709デフォルトの名無しさんNGNG
>>708
自分はxyzzyを使って、
dabbrev-expandと、d-modeのキーワードに色々登録して補完機能でバシバシやってますけど、
駄目かな。
0710デフォルトの名無しさんNGNG
>>709
聞いたことあるけど触った事なかったな
良さそうだったらサクラエディタから乗り換えます
ども。
0711デフォルトの名無しさんNGNG
>>710
色分けと補完くらいならサクラエディタでもできるじゃん。
0712デフォルトの名無しさんNGNG
インテリセンスってフリーのエディタで搭載してるのある?
0713デフォルトの名無しさんNGNG
eclipseとか。
0714デフォルトの名無しさんNGNG
おっと盲点・・・。
eclipseDの評判が悪かったからスルーしてた。
0715デフォルトの名無しさんNGNG
eclipseDは今のところ色分けくらいしかできない。
補完機能+makeなどを利用したコンパイルができるようになれば
乗り換えるかも
0716デフォルトの名無しさんNGNG
マクロ用のスクリプトは可也作り易そうだね
かと言ってDスクリプトを作るとなると途方もなさそうだがw
0717デフォルトの名無しさんNGNG
Cのライブラリが使いまわせるなら良さそうなの探してみるか
0718デフォルトの名無しさんNGNG
>>715

今のところも何も、CDTみたいな後ろ盾があるわけじゃないから
誰かがやらない限り誰もやらない。
0719デフォルトの名無しさんNGNG
>>715

誰かがやらない限り何も動かん
0720デフォルトの名無しさんNGNG
WINAPIのRectangle関数がなかった
もしかしてstd.c.windows.windowsって不完全?
0721デフォルトの名無しさんNGNG
>>720
もしかしなくても不完全。
http://hp.vector.co.jp/authors/VA028375/d/windows.h.html
とか使うべし
0722デフォルトの名無しさんNGNG
>>721
素敵。あなたもリンク先も。
0723デフォルトの名無しさんNGNG
caseが最初にきたらラベルに出来ないようにすればいい。

そうすれば
case 1:を
case1:
とかで失敗しない。
caseだけは例外で許可、だけどcaseが文頭に来るラベルは禁止。

これでcaseラベル問題解決しない?
0724デフォルトの名無しさんNGNG
んな昔のBASICのような命名制限つけるぐらいなら、後ろの":"を他の記号にした方がいいんじゃ?
0725デフォルトの名無しさんNGNG
なんか行き当たりばったりな設計だな。
センスの悪さはC++に勝るとも劣らないな。
0726デフォルトの名無しさんNGNG
caseラベル問題ってなに?英語できないからML見てないんだよねw
ぱっとみコンパイラのバグだろうから、仕様としてあわせる必要は無い気がする
0727デフォルトの名無しさんNGNG
>>726
何かも知らないのに答えをだすとはさすが
0728デフォルトの名無しさんNGNG
switch( hoge ){
case1:
でラベル扱いされるって話?

俺もどういう話なのかよくわかんない教えてください。
0729デフォルトの名無しさんNGNG
case1なら普通にラベルとして扱わなきゃおかしくね?
0730デフォルトの名無しさんNGNG
D言語のgotoが一風かわっていることに今気づいた・・。
ねちねちとswitch文のソース書いて試してみたが
特に困りそうな気はしないが・・

何が問題なの教えてplz ・゚・(ノД`)・゚・
0731デフォルトの名無しさんNGNG
キーワードの色分けができるエディタ使えよ。
0732デフォルトの名無しさんNGNG
#pragma comment(lib, "gdi32.lib")
みたいなことってできませんか?
0733デフォルトの名無しさんNGNG
低レベルな話ですまんが、DMD0.94でProject: Windows.h for Dが
使えないね。
コンパイルしようとすると.sizeプロパティはだめぽ、.sizeof使ってちょ
とメッセージが。
はぁ、どうしよう、コンパイラのバージョン落とすくらいしか対応策
なし?
0734デフォルトの名無しさんNGNG
>>733
grepしてreplaceすればOK
0735デフォルトの名無しさんNGNG
>>734
んまぁ確かにそうなんだけど…めんどくせぇ。
いや、Portingしてくれてる人のほうがめんどくせぇと思ってるんで
しょうが…やっぱり発展途上のはこういった問題が付きまとうねぇ。
これはこれで面白いからいいんだけどさ。
0736デフォルトの名無しさんNGNG
>>733
dmd -d でいいんでないの?いや、避けたいのはわかるけど。
0737デフォルトの名無しさんNGNG
>>736
ほんとだ、すっかり忘れてた。
既に置換しちゃったよ…まぁいいか。
0738デフォルトの名無しさんNGNG
C++でウィンドウをカプセル化したりするときにSetPropや
CreateWindowExの引数にthisを渡す方法があると思うけど
それってD言語だとどうやるんでしょう?
マニュアル読んでみたけどそういった記述が見つからんです。
0739デフォルトの名無しさんNGNG
すまん、普通にthisキーワード使えるっぽ…。
本当にすまんかった、吊ってくる。
0740デフォルトの名無しさんNGNG
GCがあるから、SetPropだとそれ以外の参照がなくなったときが怖いかも。
MFC式に、外部にmapを持っておくほうが安心じゃないか?
0741デフォルトの名無しさんNGNG
>>740
SetProp以外が参照しなくなったときに回収されちゃうってことですかね?
MFCは大昔に使ったっきりなんでよくわからないんですが、マッピング用
の外部クラスなりを用意したほうが安全ってこと?
0742デフォルトの名無しさんNGNG
>>741
いや、SetProp(に限らないが)に渡したポインタも自分で保持していないと、
GCによって回収されてしまうことがあるということ。

APIに渡したということをGCは認識してくれないので、、、

ついでにDMD 0.95リリースされたね。
型安全なprintf・・・
0743デフォルトの名無しさんNGNG
なにっダウソロードしておかねば!


なんつって全然つかってないんだけど一応ねヾ(´ー`;)
0744デフォルトの名無しさんNGNG
SDL_mixerのポーティングを使おうと思ったのだけれど、
正しいライプラリじゃないよ!っていうエラーメッセージが出てリンクでけん。
D言語でゲーム作ってみようと思ってたけど、まだ無理かなぁ。
SDLとOpenGLのほうは動くんだけど・・・・・・。

>dmd playmus.d SDL.lib SDL_mixer.lib

Error43: Not a Valid Library File
--- errorlevel 1
0745デフォルトの名無しさんNGNG
>>744
その.libはちゃんとimplibした奴だろうね?
0746デフォルトの名無しさんNGNG
D言語のプリプロセッサってどんなもん?
0747デフォルトの名無しさんNGNG
どんなものもなにもDにはプリプロセッサなどない (だよね?)
0748デフォルトの名無しさんNGNG
versionとか、templateとか、mixinがプリプロセッサっぽい役割を果たしているのでは?
0749デフォルトの名無しさんNGNG
とりあえず、ここを読め。
ttp://www.kmonos.net/alang/d/pretod.html
0750デフォルトの名無しさんNGNG
プリプロセッサは前処理をするって意味だからね
Dはマクロとして展開されずにそのまま解析に入るからプリプロセッサはない(と思う)
都合2回以上全文解析する必要の有るプリプロセッサよりは速いだろうというのは確か
0751デフォルトの名無しさんNGNG
>>750
>>749
0752デフォルトの名無しさんNGNG
ここまでがんばらないで素直に#ifdefすればいいのに・・・

Dは条件コンパイルをサポートします:
バージョン固有の機能の、固有のモジュールへの分離。
debug文による、 冗長な文字出力などのデバッグ用コードのon/off。
version文による、 一つのソースからの複数の異なったプログラムの生成。
if (0) 文。
ネスト可能なブロックコメント /+ +/ によるコードのコメントアウト。
0753デフォルトの名無しさんNGNG
static assertがえろいね
0754デフォルトの名無しさんNGNG
プリプロセッサは汚いな。サブセットとは言えC#に残ってしまったのはC#の汚点の一つだと思う。
0755デフォルトの名無しさんNGNG
ちょっとしたスクリプト代わりになるほどコンパイルが早いという評価だしね
DLLならJavaみたく鯖を稼動したまま指しかえれる可能性もあるわけだ
0756デフォルトの名無しさんNGNG
プログラミング言語Dの「概要」の項に
C/C++から取り除かれた特徴として
プリプロセッサがあがっています。

機能上プリプロセッサに似ているが
言語の仕様としてとりいれられたものに
debug、version

見た目上プリプロセッサに似ているものとして
特殊トークン列#line

などがあるようです。
などと書いているうちに先をこされましたが
とりあえず投稿しちゃいます。
詳しいことはわたしには聞かないでください。。。
0757デフォルトの名無しさんNGNG
http://www.kmonos.net/alang/d/pretod.html
ここ見たほうがはやかったです。
詳しいことはわたしにはきかないでください。。。
0758744NGNG
>>745
ありがとう!問題解決しました!
0759デフォルトの名無しさんNGNG
ぶっちゃけ俺が聞きたいのは、
D言語内で俺言語を作ったりできるのかなぁと言う事なのよ。
例えばPerl風のforeach構文が欲しいなぁか思ったら、自由に
構文追加できたりできるのかね?D言語とやらは。
0760デフォルトの名無しさんNGNG
>>759
意味不明なのだが、言語仕様を独自に作るならコンパイラ毎作れば?
0761デフォルトの名無しさんNGNG
>>759
できません。帰ってください。
0762デフォルトの名無しさんNGNG
>>759
作者アフォだから今ならプロジェクトのっとれるよ。
0763デフォルトの名無しさんNGNG
D言語の正式版っていつ出るのかね?
そしてメジャーになれるのかね?
0764デフォルトの名無しさんNGNG
地味にバージョンアップしてるから9月くらいには出るんじゃないかな
メジャーになるかどうかはプラットフォーム非依存なIDEが出るかどうかによる
0765名無しさん@そうだ選挙に行こうNGNG
IDE より GUI toolkit だろ。
DWT はいつ出るんだ。
0766名無しさん@そうだ選挙に行こうNGNG
GUIライブラリってどっかが作ってるんでしょ?
0767名無しさん@そうだ選挙に行こうNGNG
文法変えたいならcamlp4みたいなの作れば
0768デフォルトの名無しさんNGNG
Googleの検索結果
"D Programing Language" wxWidgets porting
・・・0件 orz
0769デフォルトの名無しさんNGNG
Borland VCLのラッパーが欲しい。
最強でしょ
0770デフォルトの名無しさんNGNG
DってC#やJavaより優れている仕様だって言ってる人多いのにどうして全然注目されないの?
言語関連の雑誌で特集されたの見たことないし
研究分野でも全く話題にされない。
0771デフォルトの名無しさんNGNG
中層プログラマの品質の悪さにかけては日本はダントツだから。
0772デフォルトの名無しさんNGNG
>>769
VCLはIDEが連係してくれないと意味が無いからなあ
それに、Dで再現するには、今のDにはRTTI関連が大きく足りないよ
>>770
まだ1.0に達してないからじゃね?一応雑誌にでたことはあるよ
0773デフォルトの名無しさんNGNG
・ライブラリがヘボい。
・過去の資産をインポートするのも一苦労。
・仕様はC#2.0で追い抜かれる。
・コンパイラにバグが多い。
・IDEが無い。
0774デフォルトの名無しさんNGNG
OS固有のAPIを提供するのはいいけど、それよりもまずはライブラリだな
wxWidgetsなんてポテンシャルはすさまじいのに日本じゃまったく流行らない
0775デフォルトの名無しさんNGNG
・Macで使えない
0776デフォルトの名無しさんNGNG
文法が汚い〜をきれいにしただけって言語はあまり流行らないでしょ。
某rubyみたいなの。
0777デフォルトの名無しさんNGNG
Dはコンパイラ指向だからコードの品質は高くなるよ(たぶん)
でもそんな効率の良さを時代が求めてないのかも
0778デフォルトの名無しさんNGNG
C#も普通に速いしな。
商用のManaged DirectXのアプリが出てくるくらいまで
最適化されたら最強なんだけどさすがにそれは無理かな。
0779デフォルトの名無しさんNGNG
C#起動遅すぎ
0780デフォルトの名無しさんNGNG
それはC#ではなく(ry
0781デフォルトの名無しさんNGNG
>>777
なんでコンパイラ指向だとコードの品質が高くなるんだ?
0782デフォルトの名無しさんNGNG
俺が言ったのはバイナリの品質って意味なんだけどね。
けどコーディングのスタイルが有る程度強制されるからC++よりはマシじゃないかな。
0783デフォルトの名無しさんNGNG
D GUI は wxWidgets と SWT が需要高いのかな? このスレ住人的には。
0784デフォルトの名無しさんNGNG
FOX
0785デフォルトの名無しさんNGNG
wxWidgetsはマルチプラットフォームなMFCとしては一番高級な印象がある(Gtk+をラップしたりするし)
DUIライブラリ作るくらいならこっちを頑張って実装して欲しかった

・全OSで共通のソースが使える事
・ルック&フィールがOS依存である事
・それがネイティブである事

D言語にはこれらを期待する
0786デフォルトの名無しさんNGNG
期待するだけなら簡単だよな。
0787デフォルトの名無しさんNGNG
window.widget
window.gdi
window.sdl

・・・10年先だな
0788デフォルトの名無しさんNGNG
>・全OSで共通のソースが使える事
>・ルック&フィールがOS依存である事
MONOに何か用ですか?
0789デフォルトの名無しさんNGNG
Windows.Formsが不完全な上にネイティブでもないし
0790デフォルトの名無しさんNGNG
そういえば……LinuxにOS依存のGUIって、あって無いようなものだな。
0791デフォルトの名無しさんNGNG
リソースコンパイラの実装って難しいのかな、やっぱ。
それが簡単ならエディタ作ってみたいのだが・・・
0792デフォルトの名無しさんNGNG
別に難しくは無い。
0793デフォルトの名無しさんNGNG
>>791
Eclipseプラグインでキヴォンヌ
0794デフォルトの名無しさんNGNG
#defineをenumに置き換えてリソースそのものはCのリソースエディタでとかなら出来るかも
0795デフォルトの名無しさんNGNG
>>768
まだ構想段階のようですが。

>> D/wxWidgets
Wiki4D: wxD
http://www.prowiki.org/wiki4d/wiki.cgi?wxD
Wiki4D: DwithSwig/Messages
http://www.prowiki.org/wiki4d/wiki.cgi?DwithSwig/Messages

>> D/Swig
Wiki4D: DwithSwig
http://www.prowiki.org/wiki4d/wiki.cgi?DwithSwig
0796デフォルトの名無しさんNGNG
>>795
おお素晴らしい。構想に留まらずそのまま推進して欲しいね。
0797デフォルトの名無しさんNGNG
物凄い勢いで糞言語に成り下がるのが目に見えてるのに
おまいらそんなに期待しますか
0798デフォルトの名無しさんNGNG
少なくとも俺はC++から乗り換える予定だが。
0799デフォルトの名無しさんNGNG
おれもおれも

むしろ糞言語じゃないものが無い気がするがどうか?
0800デフォルトの名無しさんNGNG
しかしサンデープログラマにはポーティングの手伝いをする方法がいまいち分からんのが辛いな
0801デフォルトの名無しさんNGNG
ポーティングは非常に簡単です。既存のを参考に量産してください。
0802でぃきちNGNG
よぅーし、パパはりきっちゃうぞぉ。
0803デフォルトの名無しさんNGNG
Delphiでいいじゃん
0804デフォルトの名無しさんNGNG
Object Pascalは変数定義できる場所が決まってたり予約語のタイプ数が多いのが嫌
0805本7NGNG
むしろそこがDelphiのいいところだと思う。
なんでも簡単・自由になりすぎてPerl厨の糞コードみたいにはならないでほしい。
物事には手順があるってものだ。
0806デフォルトの名無しさんNGNG
COBOLでもやってろ
0807デフォルトの名無しさんNGNG
Cライクな構文でなければ生理的に無理だな
0808デフォルトの名無しさんNGNG
PascalやCOBOLはともかくとして、関数型言語やプロトタイプベース言語の面白い世界を
生理的なんて理由で敬遠するのは悲しすぎると思われ
0809デフォルトの名無しさんNGNG
そこでPrologの出番ですよ
0810デフォルトの名無しさんNGNG
スタチックライブラリ作るにはlib.exeってのを使うのか
0811デフォルトの名無しさんNGNG
じゃあFreePascalを改造して
beginを{に
endを}に
:=を=に
=を==に
みたいなことやったらついてくる人いるかな
0812デフォルトの名無しさんNGNG
>>811
既存のソースが使えなくなる「だけ」なのでついてくる人はいないと思われ
メリットがないと
0813デフォルトの名無しさんNGNG
>>811
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.8.2.html
ttp://www.pro.or.jp/~fuji/computerbooks/c/c.modula2.html
どうしてもこれらを思い出してしまう
0814デフォルトの名無しさんNGNG
本家の日本サイトへのリンクっぷりが凄まじいな
それだけアメリカ国内ではシカトされちゃってるのだろうか
0815デフォルトの名無しさんNGNG
>>814
それだけ日本人の言語評価能力が高い(相対的にアメリカは低い)、
と好意的に解釈しましょう。

(D言語が良い言語か否かの議論は置いておくとして。
自分はもちろん、良い言語だと思っているんだけど)
0816デフォルトの名無しさんNGNG
>>813
下側リンク、おもしれー、そーゆーときは始めからModula使えばいいじゃんw
0817デフォルトの名無しさんNGNG
Longhornになったら.NET Framework、WinFX-APIがデフォルトで
付いてくるわけだが、そうなってもD言語はやっていける?
それともD言語もD.NETになって軍門に下るのか?
0818デフォルトの名無しさんNGNG
Mプラットフォームライブラリの強化に回るんじゃないかな
0819デフォルトの名無しさんNGNG
MSIL吐く実装もいつか作られそうだね。本家はコンセプト通りネイティブのままじゃないかな。
0820デフォルトの名無しさんNGNG
>>819
安心した
0821デフォルトの名無しさんNGNG
マクロ並の template, mixin って、MSILで実現するのムリじゃね?

まぁ、.NET Framework が利用できればライブラリ不足は解消するけど。
0822デフォルトの名無しさんNGNG
>>804
予約語のタイプ数なんてエディタの補完機能でどうにでもなるよ
0823デフォルトの名無しさんNGNG
最近のIDEは予約語も補完されるのか?
俺が使ってるのはどれもせいぜいメンバ変数、関数の補完しかないよ。
0824デフォルトの名無しさんNGNG
>>817
C++みたいにM$や某が独自ライブラリ作るんだろ。
0825デフォルトの名無しさんNGNG
>>823
普通逆じゃないでしょか・・・
予約語補完よりインテリセンスのが高級な機能ですよ
0826デフォルトの名無しさんNGNG
予約語を補完するなんてエディタは寡聞にして聞いたことがない
0827デフォルトの名無しさんNGNG
サクラエディタやxyzzyはキーワードの強調と補完をする機能がある
複雑なアウトライン解析をするインテリセンスのようなものは、普通のエディタじゃ実装されんねぇ
0828デフォルトの名無しさんNGNG
マスコットの胡散臭さがたまりません。
0829デフォルトの名無しさんNGNG
http://www.levenez.com/lang/history.html
ここにD言語が載るのはいつですか?
0830デフォルトの名無しさんNGNG
1.0が出てからじゃね?
0831デフォルトの名無しさんNGNG
俺のDelphiはCTRL+Jですごいことになるよ。
0832デフォルトの名無しさんNGNG
Eclipseプラグインの作り方でも学びますか。
0833デフォルトの名無しさんNGNG
それよりもDでEclipseみたいなの作れば、Javaより以下略
0834デフォルトの名無しさんNGNG
D言語が使えるマルチプラットフォームライブラリで、
且つVBチックなRADが出来るIDEがあればWinの牙城は崩れる。
そのIDE自身もD言語で作られていれば鬼の様に普及する。

さて、EclipseのWikiにいきますが
0835デフォルトの名無しさんNGNG
D言語がんばって欲しいね。
.NET構想なんかぶっ潰してくれ。マジで。
0836デフォルトの名無しさんNGNG
だからDelphiでいいじゃん。
0837デフォルトの名無しさんNGNG
彼はCライクじゃないという致命的なハンデを背負ってるから
0838デフォルトの名無しさんNGNG
Cライク、他はともかく変数宣言だけは読み辛いぞ、そこだけはPascalライクの方がイイ
0839デフォルトの名無しさんNGNG
俺がC++からDに乗り換えたいと思った理由がそれだな
int* p1, p2;
が、intのポインタ2つじゃないというのが嫌いだった。
Dではそれを俺好みにしてくれたので思わずマンセー
0840デフォルトの名無しさんNGNG
じゃあ俺もマンセー
0841デフォルトの名無しさんNGNG
それでもまだ、int[2][3] なんてのは逆順だから。
[3][2]int って書きたい。で、配列の装飾を前からかかるようにすると、他の装飾(ポインタの*とか)も
全部前からにしないとおかしくなるので、結局Pascalのそれに行き着くわけで。
0842デフォルトの名無しさんNGNG
>>841
int[2][3]のが分かりやすい
0843デフォルトの名無しさんNGNG
>>842
禿しくではないが普通に同意
0844デフォルトの名無しさんNGNG
固定長配列を使う機会なんて、激しく限られているからどっちでもいい。
0845デフォルトの名無しさんNGNG
>>837
じゃあFreePascalを改造して
beginを{に
endを}に
:=を=に
=を==に
みたいなことやったらついてくる人いるかな
0846デフォルトの名無しさんNGNG
>>845
既存のソ(略
0847デフォルトの名無しさんNGNG
おい、WinFXは使えるようになるんだろうな?
0848デフォルトの名無しさんNGNG
非.NETなC#があれば乗り換えるよ
0849デフォルトの名無しさんNGNG
そこでHSPの登場ですよ。
0850デフォルトの名無しさんNGNG
monoなんていらんからgcjのC#版が出てほしいなぁとは思う
0851デフォルトの名無しさんNGNG
C#は.Net Frameworkのライブラリのありがたみもあるから
gcj相当のだけで解決するものでもない気がする
0852デフォルトの名無しさんNGNG
中間コード->無条件に遅いとか勘違いしてるアホが多いんだよな
0853デフォルトの名無しさんNGNG
>>848
Delphiじゃん
0854デフォルトの名無しさんNGNG
>>852
実際遅いんだけどな
0855デフォルトの名無しさんNGNG
中間コードと等価なネイティブコードと比較すれば、無条件に遅い
0856デフォルトの名無しさんNGNG
DelphiとC#じゃ全然文法違うだろ
0857デフォルトの名無しさんNGNG
等価なら速度も同じ
0858デフォルトの名無しさんNGNG
>>852
こんなアホまだいたんだ。
0859デフォルトの名無しさんNGNG
C#だっていいんだけど
Microsoft .NET Framework Version *.* 日本語版
こいつがユーザのマシンにどれほど入っているだろうか。
全体の10%にも満たないのではないだろうか。
そして普及したらしたでM$の配下にそまることに抵抗がある俺。
そんなことを考えてしまうWindows XPユーザの俺。愛。
0860デフォルトの名無しさんNGNG
C#はなんていうかメモリ喰いすぎだし、起動が遅いんだよね。
走り出しちゃえばVBよりかは重く感じないんだけど。
0861デフォルトの名無しさんNGNG
まぁC#を使えなんて強制はしないよ。
しょぼくてセンスの悪い言語仕様と
C++の劣化コピーな乏しいライブラリと
劣悪な開発環境が好きならそれを使っとけ。
0862デフォルトの名無しさんNGNG
文字列というか、配列周りが気持ち悪いよなぁ>D
0863デフォルトの名無しさんNGNG
ただ煽りたいだけの奴が流入してるようだが
Delphiの人はボケに来てるのだろうか?
0864デフォルトの名無しさんNGNG
>>861
劣悪な環境が好きなんです。
0865デフォルトの名無しさんNGNG
ごめんDelphiはないわ…
0866デフォルトの名無しさんNGNG
C -> VB -> C -> C++ -> Delphi -> C#
とやってきたけど Delphi が一番よいと感じたよ。
MS製じゃないから将来が心配だけど。
逆にMS製じゃないからよいのかもしんないけど。
0867デフォルトの名無しさんNGNG
ここはD言語スレだ。D言語もやってから判断してくれ。
0868デフォルトの名無しさんNGNG
IDEに浸かってるならDはまだ無理かと。
0869デフォルトの名無しさんNGNG
ふーむ。
delphiがなんでいいか聞きたい気もしるが
さすがにスレ違いか。
0870デフォルトの名無しさんNGNG
>>869
マルチプラットフォームなライブラリにリンクできるIDEという点。
完全にフリーで構文がCライクならとは散々言われてきた。

BCBXはどうなってんだろう・・・
0871デフォルトの名無しさんNGNG
>マルチプラットフォームなライブラリにリンクできるIDEという点。

ビジュアルデザイン可能なIDEて意味でそ?
でないと>>866のすべての言語が満たしてしまう。

BCBXはデザイナ類はついてなかったはず。これはBCB系列でない。

でBCB系列たるBCB6は
CLXついてるからマルチプラットフォーム、というか
クロスプラットフォームか。これはdelphiも同じ。
というわけで、delphiじゃなくていいじゃんということに・・・?

WinだけのしとはどっちみちWinFXとやらで
既存環境での開発はアホらしくなるのか・・?

ヽ(´ー`)ノ オテアゲ〜
0872IDENGNG
つくっちまおうか
0873デフォルトの名無しさんNGNG
>>866
BCBは?
0874デフォルトの名無しさんNGNG
>>872
VCL(マルチプラットフォームなGUIライブラリ)が必要かと。
wxWidgetsのポーティングされた且つそれようのフォームデザイナがあれば神なのだが。
0875デフォルトの名無しさんNGNG
ああ、BCBアカンやん
Linuxで使えないやん
DelphiはKylixあるから問題ない、
とそういうことなのカモ
0876デフォルトの名無しさんNGNG
どうでもいいがdigが物凄い勢いでなかったことにされてるな
0877デフォルトの名無しさんNGNG
DIDEが無かった事にされる日も近いですか?
0878デフォルトの名無しさんNGNG
D言語界隈の人たちは飽きっぽい人が多いんですね
0879デフォルトの名無しさんNGNG
D言語1.0の明確なロードマップって出てる?
0880デフォルトの名無しさんNGNG
DMDScriptがphobosに組み込まれればアプリ開発言語としては鬼な気がする。
母体となってるECMAScriptが枯れてないから難しいのかな。
0881デフォルトの名無しさんNGNG
D言語ブームまだー?
0882デフォルトの名無しさんNGNG
言語が登場して普及するまでには5〜10年は掛かるからなぁ
0883デフォルトの名無しさんNGNG
まぁ、廃れても廃れなくてもD言語は大きな意義ではあると思う
0884デフォルトの名無しさんNGNG
Eclipse対応まだぁ〜?
0885デフォルトの名無しさんNGNG
>>884
完全対応じゃないけど開発中だよ。
0886デフォルトの名無しさんNGNG
でも多分開発途中で飽きるね
0887デフォルトの名無しさんNGNG
中なの?eclipseDも放置組じゃない?
0888デフォルトの名無しさんNGNG
ほんと飽きっぽい人ばかりですね
0889デフォルトの名無しさんNGNG
いや飽きてるのは海外の人らだろ。ジャップにもちらほら飽きてる人はいるがw
0890デフォルトの名無しさんNGNG
>>876
いつLinuxをサポートするんでつか?って聞きたい気分・・・
0891デフォルトの名無しさんNGNG
>>876
激しくわらたw
0892デフォルトの名無しさんNGNG
>>887
そうか?最終更新2004-06-14だけどダメ?
0893デフォルトの名無しさんNGNG
組み込みECMAScriptを実現しようとSpiderMonkeyに手を出したはいいけど・・・
ヘッダファイルの変換作業が激しく面倒だと気づいて萎え気味。
この作業に耐えられる人はマジで尊敬します。
0894デフォルトの名無しさんNGNG
よく知らないんだけどEclipseってJavaで書かれてるんでしょ?
0895デフォルトの名無しさんNGNG
誤爆かな?でもその通りだよ。
0896本7NGNG
WIN32版はネイティブAPIを利用してるけどな
0897デフォルトの名無しさんNGNG
>>893
DelphiでDMonkey使えば?
0898デフォルトの名無しさんNGNG
>>897

  ま た D e l p h i か !
0899デフォルトの名無しさんNGNG
ヘッダファイルの変換なんて自動化しろよ
0900デフォルトの名無しさんNGNG
dmc4d.exeみたいなのをDMが提供してくれてもいい気もするが。
そのうちツールとして頒布すると思う。
0901デフォルトの名無しさんNGNG
alias int Hoge(const int) hoge;
だと「const使えねーよバカ」って言われるんだけどコレは仕様として正しいのかな?
0902デフォルトの名無しさんNGNG
D言語って誰かが個人で開発してるの?
0903901NGNG
大ぼけかました。

alias int function(const int) hoge;
これで怒られる。
0904デフォルトの名無しさんNGNG
>>901,903
C/C++のconstとDのconstは意味が違うので。
http://www.kmonos.net/alang/d/attribute.html
http://www.kmonos.net/alang/d/htomodule.html
> D の const は、型修飾子ではなく記憶クラスです。

alias int function(static int) hoge;
で怒られるのと同じ。
0905901NGNG
>>904
thanks

細かなところでCと互換性が無くなってるんだね
0906デフォルトの名無しさんNGNG
>905
言語互換性を期待するのは、そもそも間違いだと思うが…
作者はC/C++とは違う言語作ろうとしてるんだし。
「細かな所で互換性が無い」のではなく、「所々似ている」だよ。
0907デフォルトの名無しさんNGNG
>233
>    良く似ているが、少し違うというモノは、全然似ていないモノより始末が悪い。

アーゴの法則より
0908デフォルトの名無しさんNGNG
PERLが嫌われる一番の理由だなw
0909デフォルトの名無しさんNGNG
点数データ(初期値代入)が入った1次元配列のアドレス・人数を受け取って、
その最大点、最小点 平均点を求めて返す関数を作成してもらえたら助かります
前はC++で作成してもらったのですが、今度はC言語で解かないといけなくなりました。
提出日が今日までなのでお分かりの方いましたらお願いいたします。

0910デフォルトの名無しさんNGNG
ごめんなさい スレ間違えました。
0911デフォルトの名無しさんNGNG
明らかなネタの提供だが、まぁ気にしない。
0912デフォルトの名無しさんNGNG
>>909
あまり詳しくないけど、こんな感じか。
void func(int[] data,out int max,out int min,out double ave)
{
int sum;
min = int.min;
max = int.max;
foreach(int score;data) {
sum += score;
if(score > max) max = score;
if(score < min) min = score;
}
ave = cast(double)sum / data.length;
}
0913デフォルトの名無しさんNGNG
min = int.min;
max = int.max;
逆だった。
min = int.max;
max = int.min;
0914デフォルトの名無しさんNGNG
プリミティブで型情報が取れるのは嬉しいよね。実際。
0915デフォルトの名無しさんNGNG
ちょっとここに書いていいのか迷うのですが、DでWS_EX_TOOLWINDOW
なウィンドウを作ると何故かTOOLWINDOWにならずに閉じるボタンが
付いたり通常ウィンドウとのキャプション幅が真っ黒になったりする。
これは単にリンクするライブラリが悪い(DMD付属のもの)のか、作り方
が悪いのかどっちだろう…。
ぐぐってもゲーム系が多いみたいだしなぁ…、通常アプリ(?)をDで作って
る人いないですかね?
0916デフォルトの名無しさんNGNG
>>915
std.c.windows.windowsにはWS_EX_TOOLWINDOW無かったんで自分でWS_EX_だけ定義してみたら
普通にツールウィンドウになった。自分のコードも疑ってみたら?
0917デフォルトの名無しさんNGNG
>>915
DMのリンカが吐くEXEの問題かも知れない。
PEヘッダのバージョンが古いので、表示がWin3.x仕様になってるというもの。

初代スレかwikiあたりに情報があったかも。
0918デフォルトの名無しさんNGNG
>>916
レスthx
portingライブラリはwindows.h for Dのやつです、書き忘れて申し訳ない。
なのでその辺は普通に使えました。

>>917
SUBSYSTEM Windows,4.0ですね、wikiでみかけて試したんですが同様。
ということはコードの問題か…。

単一ウィンドウなら普通にToolwindowが作れるんだけど複数出すとどうも
1つや2つ怪しくなる…コードを見直してみます。
thxでした。
0919デフォルトの名無しさんNGNG
int delegate(int, double)[] onEvent;
onEvent ~= &Hoge.func;
onEvent ~= &Hage.fuck;

onEvent();

こんなC#風なアクセスはどうだろうか?
0920デフォルトの名無しさんNGNG
>>919
わー、かこいー。
C#では、こーいうの普通なん?
0921デフォルトの名無しさんNGNG
C#だと+=で連結できるね
0922デフォルトの名無しさんNGNG
演算子をオーバーロードできるんだから
ライブラリでどうにでもならない?
0923デフォルトの名無しさんNGNG
>>919
>>921
そういう風に演算子の意味を捻じ曲げるのは
混乱をもたらし見苦しさを増すから避けたい、
とか書いてた気がする。

>919は素直にforeachループでいいような気もする。
foreachなら巡回してるってことが分かりやすいし。
0924デフォルトの名無しさんNGNG
onEvent.foreach();
0925デフォルトの名無しさんNGNG
捻じ曲げるってほどでも無いと思うがなぁ。
「通知」が目的であって、「巡回」は実装に過ぎないわけで。

C#のイベントの偉いのは、外部からは += と -= でしかアクセスできないこと。
= を使って、勝手に全置換えされてしまうことは無い。
まぁ、>>922 の言うとおり、ライブラリでどうにでもなるけど。
0926919NGNG
>>919の方法では-=に相当する実装が難しいねw
-&Hoge.fuckなんてしたらそれこそ捻じ曲げだ。
0927デフォルトの名無しさんNGNG
そもそも加算演算子を連結に使ってるのが捻じ曲げだからなあ
といっても、D(とAda)以外はほとんど全ての言語がこの捻じ曲げを行ってしまってるんだけどw

加算と連結を区別するなら、減算と除去も区別しないと
0928デフォルトの名無しさんNGNG
DelegateQueue、FunctionQueueを定義すれば問題なしだね
最初からインプリメントしてくれたほうが実行速度を気にしなくて良さそうだけど
0929デフォルトの名無しさんNGNG
0.96のPerformanceCounterScopeはいいね。
最速OOPへの気合の表れと見える。と適当に誉める。
0930デフォルトの名無しさんNGNG
wxWidgets for D マダー? チンチン
0931デフォルトの名無しさんNGNG
あれはバリバリとマクロが使われてるからなぁ
0932デフォルトの名無しさんNGNG
wxDはwxGPLやwxQtを使わずに作って欲しいな
DMさんは作ってくれなさそうだけどw
0933デフォルトの名無しさんNGNG
http://andy.tadan.us/d/dfbth.d.html
これは += やってるね。
0934デフォルトの名無しさんNGNG
0.99 → 1.00のバージョンアップで凄いことが起きるんだよ!
0935デフォルトの名無しさんNGNG
0.99と1.00の間には0.991から0.9999があるけどネ
0936デフォルトの名無しさんNGNG
0.a0 じゃないかな
0937デフォルトの名無しさんNGNG
0.993141592…
0938デフォルトの名無しさんNGNG
0.99
0.999
0.9999
…
 .
0.9=1に収束するとか。
0939デフォルトの名無しさんNGNG
>>934-938
>>463
0940デフォルトの名無しさんNGNG
何気なく検索してみたらEiffel(一度C言語に変換するオブジェクト指向言語)用の
wxWidgetsのリンクが貼ってあるページをみつけた
Eiffel用のwxWidgetsならC言語へのラッパがあるはずだからそれ活用しろってことかな?
0941デフォルトの名無しさんNGNG
そのラッパを手に入れて、ヘッダをモジュール化するまでに挫折しそうだが
0942デフォルトの名無しさんNGNG
自作クラスで、opIndex をオーバーロードしとるんだが、
組み込み配列みたいに、ArrayBoundsError を throw するのってどうやるんでしょう…
組み込み例外(?) のインスタンス化の仕方がわからんのです。
教えてちょんまげ。
0943デフォルトの名無しさんNGNG
import std.array;

int main() {
throw new ArrayBoundsError("File",10);
return 0;
}

なんだが、コンストラクタがprivateなんだよねw
0944デフォルトの名無しさんNGNG
dmd\src\phobos\std\array.d
に ArrayBoundsError が定義されてた。
うまくいったら報告よろしくね
0945デフォルトの名無しさんNGNG
>>943
_d_array_bounds から呼び出せ、ってことかねぇ
0946デフォルトの名無しさんNGNG
可能性としてはtryの中でなければthrowできないとか
0947942NGNG
>>943
�dクス。
俺の探し方が超悪かった。phobos の中探したんだけど見つからなくて、
組み込み例外なのかと思ってしまった。
0948943NGNG
今のバージョンでは、他モジュールのprivateなコンストラクタも呼び出せるというバグがw
0949デフォルトの名無しさんNGNG
wikiのバグ情報のページに、それに似たヤツが載ってたね。
大分昔からあるような気もしないではないが、それとも単に
バグ情報のページが更新されないだけかね。
0950942NGNG
あ、ちなみに普通に new できて throw できました(まだ catch してないけど)。

コンストラクタの引数って this(char[] filename, uint linnum) なんだけど、
ファイル名と行番号をエラーメッセージに含めとくものじゃない気がしますね。
やっぱり組み込み配列専用なのかな?
0951デフォルトの名無しさんNGNG
使用例として、 dmd/src/phobos/std/string.d の1823行目あたりに
 throw new ArrayBoundsError("std.string.sformat", 0);
というものがあったよ。
例外発生のモジュール名を突っ込んでおけばいいんじゃないかな。
line引数は分からない。
0952デフォルトの名無しさんNGNG
単純にエラーの起きた場所でしょう。
0953デフォルトの名無しさんNGNG
それはあれだ、コンパイラが解析中のソースコード中での
エラーコードの行番号を送るんだよな。
だから、利用元の行番号なんて知りようがないD言語ユーザ
側はてっきり使っちゃいかんもんかと思ったけど、とりあえず
0に設定しておけば、ユーザサイドでも使っていいんだな、これ。
0954デフォルトの名無しさんNGNG
ごめん、ArrayBoundsErrorは実行時エラーか。
0955デフォルトの名無しさんNGNG
単にメッセージを生成するのに使うだけだから、何でもいいと思うけどね。
0956デフォルトの名無しさんNGNG
>>940
nice. wxHaskel におそらくそれから派生した(か流用した)のがあったから、それでやってみよう
かな。(とりあえずwxcのコンパイルだけした)
0957本7NGNG
そんな変なものばかり使おうとせず普通にVCLライクな独自ライブラリ
つくろうよ。
0958デフォルトの名無しさんNGNG
>>957
お前がやれ。言いだしっぺだしな。
0959デフォルトの名無しさんNGNG
>>957
digにあやまれ
0960デフォルトの名無しさんNGNG
流れを無視してすまんが、DのPhobosにはC#のConvert
みたいなもんはないですか?
Convert.ToInt32("ff", 16);みたいなことをやりたいんだけど
std.convのtoIntはDecimalしかとれないですよね?
int foo = toInt("10"); // ok
int bar = toInt("ff"); // ng
スマートな解決策はないですか?
0961デフォルトの名無しさんNGNG
>>960
import std.string;

extern (C)
long strtol(char* nptr, char** endptr, int base);

long toHex(char[] str) {
return strtol(toStringz(str), null, 16);
}


void main() {
long foo = "0xff".toHex();
printf("%d\n", foo);
}

うまい方法が浮かばなかった。
0962デフォルトの名無しさんNGNG
>>961
やっぱりちょっと回りくどい方法をとらないとダメですかねぇ。
std.stringで使えるsplitやjoin等もwcharには使えなかったりするし
(toUTF8すればいいだけだけど)ちょっと標準ライブラリに弱さが目
立つような気がする…。
0963デフォルトの名無しさんNGNG
標準ライブラリに欲しい一覧を挙げてちょ
たぶん英語できる誰かが書いてくれるから
0964デフォルトの名無しさんNGNG
書いてみて「こんなの作ったよ〜」と送ったら、採用されるかもよ。
0965デフォルトの名無しさんNGNG
描画ライブラリ
マルチメディアライブラリ
0966デフォルトの名無しさんNGNG
>>964
CPLな自由参加ライブラリDeimosを思いついたけど、どっかの糞が既に名前を使ってやがった。
私は悲しい
0967デフォルトの名無しさんNGNG
Deimosはそれなりに良くできてるよ。
すぐ飽きちゃったみたいだけど。
0968デフォルトの名無しさんNGNG
Degital Marsも他の何かに使う予定でいたんだろうな
ライブラリを予約しておかなかったからこうなる
0969デフォルトの名無しさんNGNG
D界隈はいつも行き当たりばったりだな
0970デフォルトの名無しさんNGNG
>>969
よく言われる。今は反省してる。
0971デフォルトの名無しさんNGNG
>>969
行き当たりばったり出ないオプソプロジェクトなど無い
0972デフォルトの名無しさんNGNG
Dってオプソなの?
0973デフォルトの名無しさんNGNG
オープンソース( ttp://www.opensource.jp/ )ではないな。
ライブラリのソースは公開されてるが。
0974デフォルトの名無しさんNGNG
とりあえずさ、GNU classpath かなんかを、Dで書き直してみるかね。
…と思ったけど、phobos と内容がカブりまくるのが悲しいな。
0975デフォルトの名無しさんNGNG
template StringToIntegral(T) {
T StringToIntegral(char[] s,int base = 10) {
void converr() { throw new ConvError(s); }
void overerr() { throw new ConvOverflowError(s); }
int length = s.length;
if(!length) converr();
T result = 0;
int sign = 1;
int first = T.max * T.min;
for(int i = 0;i < length;i++) {
char c = s[i];
T v = 0;
if(c >= '0' && c <= '9') v = c - '0';
else if(c >= 'A' && c <= 'Z') v = c - 'A' + 10;
else if(c >= 'a' && c <= 'z') v = c - 'a' + 10;
else if(first && c == '+') {
sign = 1; if(length == i + 1) converr();
} else if(first && c == '-') {
sign = -1; if(length == i + 1) converr();
} else converr();
if(v >= base) converr();
v = result * base + sign * v;
if(sign >= 0 && v < result) overerr();
else if(sign < 0 && v > result) overerr();
result = v;
first = 0;
}
return result;
}
}
0976デフォルトの名無しさんNGNG
>>975
なんだこれ?

文字列を整数に変換する?
0977デフォルトの名無しさんNGNG
よくわからんけど、文字列->整数変換みたいだねえ。
boostのlexical_castのD版を目指したって感じかな?
lexical_castは逆も可能だった気がするけど。
0978デフォルトの名無しさんNGNG
ちょいとDっぽく?

template StringToIntegral2(T=int) {
T StringToIntegral2(char[] s, uint base = 10)
in {
assert( base <= 36 );
assert( s.length > 0 );
// assert( is_signed!(T) || s[0]!='-' );
}
body {
int sign = (s[0]=='-' ? -1 : +1);
if( s[0]=='-' || s[0]=='+' ) s = s[1 .. s.length];
T result = 0;
foreach(char c ; s) {
T v = T.max;
if( '0'<=c && c<='9' ) v = c-'0';
else if( 'A'<=c && c<='Z' ) v = c-'A'+10;
else if( 'a'<=c && c<='z' ) v = c-'a'+10;
if( v >= base )
throw new ConvError(s);
v = result*base + sign*v;
if( sign>0 && v<result || sign<0 && v>result )
throw new ConvOverflowError(s);
result = v;
}
return result;
}
}
0979デフォルトの名無しさんNGNG
>>975の、

int first = T.max * T.min;

これが何やってるんだろうな、と考えてたんだけど、
Tがunsignedな型の場合に0になるわけね。

int first = T.min * 1;でいいじゃん。
0980デフォルトの名無しさんNGNG
* 1もいらんような
0981デフォルトの名無しさんNGNG
そろそろ次スレ立てようか。
D言語 Part.4
ということで。
0982デフォルトの名無しさんNGNG
>>981
よろしこ
0983デフォルトの名無しさんNGNG
で、結局なにに使ってるの?
サンプルビルドして喜んでるだけ?
0984デフォルトの名無しさんNGNG
× サンプルビルドしてるだけ

○ 喜んでるだけ
0985デフォルトの名無しさんNGNG
[ソフトウェア板] おい!LaunchTab風味のランチャー作ろうぜ
http://pc5.2ch.net/test/read.cgi/software/1088683029/

D言語で作ってるらしいけど、ソース公開してないから、このスレ的にはあんまり意味無い。
0986デフォルトの名無しさんNGNG
そか。なら紹介されても困るな。
いや、使ってることに変わりないから応援はするが。
0987デフォルトの名無しさんNGNG
わずか5日でマイナー上げてる
現状のphobosのままで1.0に行ってしまいそう
何かこうどかっとソースが来ないとだめぽ
0988デフォルトの名無しさんNGNG
>>987
0.99の次は0.100だろ?
0989デフォルトの名無しさんNGNG
http://www.win.tue.nl/~aeb/linux/lk/lk-2.html#ss2.1
に見るLinuxみたいにもっと奇妙なバージョン付けしだしたりしてー。
0990デフォルトの名無しさんNGNG
0.99 = 0.990
よって
0.991だって。

または、1.0 beta1
0991デフォルトの名無しさんNGNG
D言語 Part.4
http://pc5.2ch.net/test/read.cgi/tech/1091185216/

立てますた。
0992デフォルトの名無しさんNGNG
おつ
0993デフォルトの名無しさんNGNG
スレ立てたくらいで疲れるような貧弱な奴>>991
0994デフォルトの名無しさんNGNG
>>990
……。

一度、バージョン番号で何を管理しているのか考えてみる
事をお勧めする。

そうした上でその表記を用いるなら、それはそれで構わんよ。
0995デフォルトの名無しさんNGNG
0.99p1とかじゃね?パッチは当てんといかんよね。大切。
0996デフォルトの名無しさんNGNG
>>994
別に、呆れかえるほどのことでもないと思うけどな。
単純に、バージョン番号を数値と見なしてるだけ。
実際、そういうバージョン表記をしているところもあるし。
0997デフォルトの名無しさんNGNG
むしろその方が多い。
LinuxKernelみたいなのが特別なだけ
0998デフォルトの名無しさんNGNG
Version 0.998
0999デフォルトの名無しさんNGNG
Version 0.999
1000デフォルトの名無しさんNGNG
Version 1.000

しかし、これは通過点に過ぎない。
↓
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。