だったらどっちか削除しろよ
しまった
誘導は春厨の釣りだったんだよ!
>>1乙
10 :
デフォルトの名無しさん:05/03/04 23:28:47
重複ではない。こちらは流れに従っている。
向こうは1がネタで釣りのために立てた。
しかもほとんどD言語の話題は出ない。
参考:1の発言。
D言語一筋で10年ほど勉強しました。
D言語のことなら知らないこと意外ならすべてわかる。
だからなんでも聞いてくれ。
ただし、プライベートなことには答えられねーぞ
まじめそうな青年じゃないか
12 :
デフォルトの名無しさん:05/03/04 23:32:03
今のコンパイラで使えるwindows.dがないみたいなんだが・・・.
実際のところどうなの.
教えてエロい人!
windows.hあるじゃん
アホは放置。
16 :
エロイ人:05/03/05 00:21:31
>>12 windows.hが見つからなくても明日はくるんだよ。いいか!!
dm\includeだ。
17 :
デフォルトの名無しさん:05/03/05 00:36:51
19 :
デフォルトの名無しさん:05/03/05 02:00:40
誰か各言語の特徴とかをオレに分かるように説明して
>>19 C
使ってる人多い。参考書なども多い。漏れも使ってる。
C++
これも多い。漏れもたまに使う。
C#
MS製なのでそれなりに多いみたい。漏れは使ってない。
D
少ない。まともな本はない。本見るくらいならWebで情報集めたほうがいい。漏れは最近Dメイン。
Delphi
一部ユーザーに大人気。漏れも使ってるが、使いやすいけどほかの言語を馬鹿にできるほど飛びぬけてるわけではない。
JAVA
使ってる人多い。漏れは使ってない。
PHP
IDに出たらシメジ難民。にょーん。
Ruby
どうやら最強らしいが、漏れは使ったことないのでわからない。
VB
仕事では使ってるところ多いって聞いたけど。漏れは使ってないのでわからない。
>Ruby
>どうやら最強らしいが、漏れは使ったことないのでわからない。
使ったことあるが、
HSP以下。
>>22 HSP以下?マジ?
Perlを再設計したとかいう話を聞いたんだがどうやったらそんな酷い事になるんだ?
>>21 つーかCとかと同列に語る言語じゃないだろ。
Rubyはそれ以前にコミュニティが(以下略
Ruby作者がHSPに強烈なライバル心を抱いているのは羞恥の事実
んなわけないじゃん
TclやPhytonつかえ
28 :
デフォルトの名無しさん:05/03/05 10:32:12
本スレはこっちだな。明らかに。といいつつ誘導されてしまったが。
>>22 全然違う言語なのに比べられるのか?
まさか、オブジェクト指向が理解できないからとか?(w
30 :
デフォルトの名無しさん:05/03/05 12:36:48
>>29上級者はすぐ雑魚で日頃のうさばらしをする。
目的さえ決めれば言語間の比較はできると思うぞ。
言語って手段だろ?
オンラインショッピングサイトを作るって目的を達成させるときに
HSPとD言語は指向が違うから比較できん、なんていうのか?
あ、目的を明確にしていない比較は意味ないと思うよ。
目的さえって、HSPでCGI、RubyでGUIなんて話になったら、どちらも糞にできるし、
逆なら勝てるし、伝え手の意志によってどうにでもできるわけで。
ところで、目的とは
>>22や
>>21。
つまり「彼らの中でどう感じるか」も
目的に入っていていいと思う。
そしてそれは一つの目安。(偏る可能性もあり。)
みんな違ってみんないいと言う。
DUIをインストールしようとしてるんだけど
「プロシージャエントリポイントgtk_combo_box_set_wrap_widthがダイナミックリンクライブラリlibgtk-win-2.0-0.dllから見つかりませんでした。」
っていうエラーが帰ってきてインストールできないよ・・・ なんでだ、教えてくれ
>>36 プロシージャエントリポイントgtk_combo_box_set_wrap_widthが
ダイナミックリンクライブラリlibgtk-win-2.0-0.dllから見つかなかった
みたいだから、見つかるようにすれば大丈夫だよ
>37
どうやって見つかるようにすりゃいいんだ
言語とかバージョンとかパスとか書かない質問に
まともに答える奴なんていないと思うが
>>39 すまない晒すよ
GTKが2.2.4
gtkglextが1.0.6
・・・GTKのバージョンが違う希ガス
環境はWinね
Win32アプリを作成する場合
ソースの文字コードは何が最適でしょうか?
UTF-16で書くと
文字列連結する場合
str ~= cast(wchar[])r"xxx";
UTF-8で書くと
API(~W)を呼ぶたびにtoUTF16(r"xxx")
戻り値を toUTF8(cast(wchar[])str)
ASCII/SJISで書くと
std.file.read(filename,buff)とかで
パス+ファイル名に日本語とか入っていると落ちるし
なのでパス+ファイル名をUTF-8にしないといけないし
変換だらけです・・
もうわけわかってません
んな所にwysiwyg文字列使ってるのが悪いんじゃ…
つまりD言語のライブラリは使い物にならない、と。
>>43 Shift JISのソースでchar[] =r"日本語";とかがコンパイル通るのは、
wysiwyg文字列はUTF-8文字のチェックしてないから、結果として
内部ではUTF-8のはずのchar[]内にSJISの文字列が入っちゃうだけで、
バグみたいなもんだろ?
std.file.readはchar[]とるから、SJIS渡したら落ちるのは当たり前。
UTF-16 ⇔ UTF-8
マンドクセ
本来はライブラリ側で吸収するべきだよね。
じゃあそんなライブラリ作れ
char[]からchar*への暗黙の変換って何のために存在してるの?
CのAPIに渡すときは大抵toStringz使う必要があるわけだし
見つけにくいバグの温床にしかならないと思うんだが。
どういう理由でこういう仕様に?
C++へのあてつけ
Cでも配列からポインタへの自動変換あるから。
ちょとD言語って失敗だったな
ライブラリ
void[] read(char[] name)とか
charでしか受け付けないものが
多すぎ
Dってさ
何か関数使おうと思うと入ってないんだよね
lcc-win32見たいに
インストール時にライブラリ作ってくれるようには
ならないのかね
いちいち、DLLからライブラリなんか作ってらんね~
こういう、よりよいC++っていうのはみんなが挑戦している。
そうそううまくいくものではない。
まあ、第一段階:それなりに使えるものが実際にあるのは評価できるけど。
それ以前のプロジェクトのなんと多いことか。
59 :
デフォルトの名無しさん:05/03/08 01:20:52
0.110を0.115にバージョンあげたらstd.stringとstd.regexpでsplitとかfindが
衝突してコンパイルエラーになんだが。
てか0.115を入れたのにバージョン表示が0.114のままになる。
string.d(2009): char[] toString(bit b)
date.d(410): char[] toString(d_time time)
これもバッティングする
61 :
デフォルトの名無しさん:05/03/08 11:56:21
0.116でてるね。
・・・なんかわけわからん変更だけど。
>>54 てか、そのノスタルジックな感じが良いんじゃないか。
なんでも自動自動で、いつの間にか忘れていた、
子供の頃のどきどき、ライブラリパスを設定出来たあの喜び、
そんな甘酸っぱい思い出が蘇るそんな感じが良いんだよ。
>配列の[]内でlengthの代わりに$を使用する…
う~ん、、 暗黙のlengthよりはこっちの方がいいのかな
return str[ s .. (x>$ ? $ : x) ];
わけわかんね
>>62 じゃあ、次世代の新しい便利な言語じゃないじゃん。
windows.h関係ぐらいちゃんと用意しろ
とりあえず時が来るのを待つしかない。
67 :
デフォルトの名無しさん:05/03/09 01:00:25
待ってないでいろんなライブラリを移植してNewsに投げようよ。
いま必要なのに足りてないものをざっとあげても
OpenSSL
Database Access Object
なんかがある。
その他にmainのいらないunittestとか欲しいし
wxDはどうですか?Wiki4D版とあひる氏版があったはずですが
今思えば公式のGUIライブラリを作らなかったのが致命的だったんじゃないか?
ああー、プリプロセッサにはCGIを使うようになるんだきっと。
CGI通す前のコードには各プリプロセッサ間で互換性がないけど、
出力されるドキュメント付ソースコードはD言語コンパイラ共通。
GUIデザインやバージョン管理とかもCGI経由でできるようになって、
ネット上のデータストレージサービスにコード類は保存するようになって、
D言語のそういった仕組みに対応したフォーラムなどもできて、
世界はD言語によってよりよい方向へ向かうんだよきっと。
こっちが本スレ?
本スレ。
じゃあむこうはなんだよ
なんで掲示板がスレッド型になってるか知ってるか?
向こうはゴミ箱
こっちはゴミそのもの。
D言語はゴミ未満
つまり生ゴミ
向こうはネタだと言っているのにどこかのばかたりが
誘導しやがるから!!
産業廃棄物
>>74 「わざと変なスレタイで立てる荒らし」のスレに、間違って誘導された人が幾らか行ってしまっただけ。
荒らしの張本人がこっちに出勤してきてるだけだからスルーすりゃいいじゃん
DでガベージコレクタをキャンセルしてOSが作れないかなぁ
OS板にカエレ
>>83 インラインアセンブラもできますからやろうと思えばバリバリ作れます
JavaでいうJNIばっかりになるなら、はなからCでやれよってなる
>>83 キャンセルするんじゃなくて、OSのガベコレとアプリのガベコレを透過的に扱える、
ガベコレを開発するのが流れとしてはきれいだと思う。
OSにガベコレなんてないし・・・
>>88 所謂メモリー管理の事ね。やってることはガベコレ。
その程度は分かって欲しい。
↑素人
OSってプログラム起動時にmallocするんだよね
いわゆるヒープメモリってやつ
んでプログラム終了時にfreeしてやる(実際は知らんけどイメージは)
メモリ管理が大雑把過ぎて使わないメモリまで確保しちゃうから
D言語の開発者はそこらへんにムカついているんだろうなと
>>91 てか、フラグメンテの問題が発生しちゃうのよ。
だから、OSのガベコレとアプリのガベコレが透過的になると、
フラグメンテの問題が解消されて良いなぁって事。もちろん効率の問題とか、
カーネル領域とか、色々有るけど、頭いい人が作ればすげー強力な物になりそうな
いよかんもする。
>>90 うるせー。馬鹿。
でも下手に関数とかのメモリを開放しちゃうと
ブルースクリーンとかフリーズとか引き起こしそう
95→2000にまでたどり着いた期間を考えると気軽に移行ってのはできないよね
pragma(lib, ...)が実装されたってな。
ヘッダファイル変換ツールまだー?
DでGUIをやりたいのだがdigとDUIどっちがいいと思う?
Linux版でstd.socket.Socketが同期(blocking=true)で動作してくれないんだが、
どうしたらいいんだろう。
解決策:マシンに暗示をかける。
るー
DMD 0.118出たな
>Bugs Fixed
>-Fixed introduced name mangling bug.
>-Fixed introduced bug with COMDAT records.
インスタンスのShallow copy、Deep copyってどうやるんですか?
Dixeの中の人、文句たらたらです。
sscanf使おうと思ったんだけど、これってchar[]版はないの?
後、printf("%s",str)のstrにchar[]渡すと、実行時落ちるのに、
cast(char*)つけると動くのは何で?
castって勝手に終端の0付け加えたりしてないよね?
abone
配列は自分の長さを知っている
そういやprintfの第2引数以降って型評価されないから暗黙で
char*には変換されずchar[]のまま渡されるんだった。
なら落ちるのも当たり前か。
リスト処理メインがいいです。
ん、ならLISPだ。
代入型は下等だな(藁
Socketのselectはディープコピーがないと辛いと思うんです。
JavaのSelectorはIteratorを返す親切な作りですし。
教えてくださいませ。
stdin が使えないか?試してないが
stdin?標準入出力?何に使えないの?
やはり0.99→0.100になったのが一番の失速の原因だな
QtのD言語バインディングは存在しないの?
Qt for Winのフリー版が出たら使えるような気がするんだけど
>>112 遅いレスですけど、自分もcloneのやり方とか探してみたのですが、
見つからなかったので、地道にノウハウ貯めようかなと思っています。
配列のコピーだけなら、a[] = b[];で出来るけど、、、。
今、デザインパターンのIteratorパターンではまってます。
D言語のonApplyとforeachを使っているのはIteratorパターンのひとつの解決方法
として考えたらよいのでしょうか?その関係がしっくり来ないので教えて下さい。
120 :
デフォルトの名無しさん:05/03/17 16:01:48
>>119 「内部イテレータ」「外部イテレータ」でぐぐれ
シリアルキー解析集「ALTEA」
大好評発売中!
http://openuser10.auctions.yahoo.co.jp/jp/user/dancexxx1960? 市販SOFTやオンラインSOFTのパスワード集です。
オークション関係から画像・OS・表計算・CAD・・・・etc
国内・国外のあらゆる分野のSoftを解析済です。
これを初めて手にされた時には、驚愕される事でしょう。
そして・・・手当たり次第にインストールを始める筈ですw
パソコンをご使用の方なら、必ず!満足されると思います。
解析結果のデータベースには15,000点を越えるパスワードが入ってます。
このパスワード集から検索するだけで、登録や制限解除が出来てしまいます。
シェアウェアを購入して、正規登録したのと同じ状態になります。
余りにもデータが多すぎる為、辞書引のようなパスワード検索SOFTで提供します。
シェアウェア以外にもパッケージ版をVectorなどでオンライン販売してるSOFTにも
多数対応しています。これらをダウンロードして無期限に試用する事も可能です(^^;
WindowsXPやOfficeなどのCDキー(プロダクトキー)ジェネレーターを使えば複数のパソコンに
インストールする事も可能です。デスクトップとノートPCなど2台以上持ってる場合は特に有効ですね。
オンラインSOFTを購入した経験は有りますか?
ありとあらゆる分野の優れたSOFTが、数多くありますよね。
しかし、ほとんどが試用期間や機能制限をして、「気に入ったら購入してください」です。
もう少し使いたいが使用期限切れで、削除・・・再インストールを繰り返していませんか?
>>119 レスありがとうございます。
D言語の場合、外部イテレータということですね。
しかし、K.INABAさんはやっぱすごいなぁ。
>>118 配列コピーがあればShallowコピーはばっちりですね。
しかしSocketSetが内部で保持しているだろう、Socket[]は同じ参照になってしまう。
SocketSet#add にSocket[]を引数にとるオーバーロードが無いのが悲しいです。
これじゃmemcpy駆使したC's selectより遅い(´д`)
配列にしたところで参照をコピーするんだからShallowにもならないや
失敗
いや、Dのは内部イテレータだろ。
126 :
デフォルトの名無しさん:05/03/17 22:05:23
内臓イテエヨ?
Cの#defineとか#ifdef、#endifとかってDだったら何に訳せばいいんですか?
D言語からQt使うライブラリないの~?
QuickTimeじゃなくてQt Toolkitのほうなんだけど
誰か作ってそうなんだけどなぁ・・・
129 :
デフォルトの名無しさん:05/03/17 22:34:42
をまいがつくれ。
D言語ってパフォーマンスで言うとC++に比べて
何%ぐらい遅いの?
逆にC++よりはやい
134 :
デフォルトの名無しさん:05/03/18 00:26:11
んなわけねぇだろ
コンパイルは早い。実行速度は同じ。
でもバグバグ?
GCがあるぶん遅い
んなわけない
GCがある分……時々止まる
Dのヒープサイズってどうやって調節するん?
-Xms -Xmxなんてオプションないでしょ?
鍛えぬかれたJVMと違って、GCがまだまだ馬鹿だしなー。
早いとか遅いとか妄想たれる前に
ちゃんと計れよ
D言語は・・・消える
ああ春だなあ。
D言語も終わりの季節だね
D言語の最適化ってどんなもんかな。
C++より速くなる可能性はあるとは言ってるけど。
まあ計ればいいんだけどさ。
やねうらおがD言語に移植したOpenGLのデモを見た感じでは
十分使い物にはなるんじゃないかな。
あとは好みだけかね。
おれは使わないと思うけど。
148 :
デフォルトの名無しさん:05/03/18 13:55:37
配列のコピーはもれなら
a = b.dup
あげちった すまぬ
wxWidgets binding k_ahiru氏とは別に実装中でふ
いまそーすほげのproject登録まち
まだバグバグだけど
DでXMLパーサ作りを楽しんでる漏れはアフォですか?
>>152 まだ実用段階じゃないから公開なんて無理
Dは、ぴゅーたベーシックなみに普及しないと思う
MAP-1000のBASICよりは普及すると思うけどねぇ。
XMLパーサとかの何が楽しいかと言えば、
メソッドの名前と種類に悩まなくていいことだーね。
>>151 言っちゃ悪いけど、正直、アフォ。
その時間をC++かJavaで何かもっと有意義なモノを作る事に宛てれば良いものを。
全然アフォじゃねーよ
質はともかくモノとソース公開しただけで第一人者だ
最適化は他の奴がやる
>>125 ほんとだ、Dは内部イテレータだ。OTL
出直してきます。
Dより次のC++標準化に期待しる!
コンピュータはアフォな事をまじめにコツコツ積み上げてたどり着いてきたって事を忘れたら意味にないけどな
未完成でも公開すれば完成する。
自分の力だけで完成させようなんてのは傲りだ
皆の力で完成させようぜ
# といってみるてすつ
XMLパーサなんて、放っておけば外人が作ったモノが広まるのにな。
無理して実装しても非標準で寒いだけ。
新しくnewsgroupをfj.comp.lang.d辺りに作れば
googleのインターフェイス使えて検索とか便利だと思うんだけどどうかな?
人が集まるかが問題だけど。
今時fjは無いだろ…。
ftp.digitalmars.com/dmd.119.zip
久々にD言語ML見にいったら、まだ新規でメッセージ投稿されてるのな。
ってか登録者だけで500人近くもいたのか。
>170
うわ…SJISで書いたときの日本語コメントまでエラー出るようになってるし。
i thinking about why japanese opensoruce program not get around the world.
i think a lot of japanese programmer don't use english. me too :)
thus, japanese opensoruce program not get the world.
it is very simple.
english is common language.
lets speaking english every time!
お前は素でopensoruceと言ってるのかと
ホントだw
よくこれでいつでも英語を使おうとか言えるな(藁
オペンソルスは新しい文化を生む。
華麗な英文を書き込まれれば、その華麗さに英語を使ってみようと思うかもしれない。
英文をみて、「この英文はちょっとなぁ…。俺が書いてもきっと同様に受け取られるんだろうなぁ」
とか思わせてしまったなら、キャンペーン失敗ということになるんじゃなかろうか。
Dの正規表現が物足りないのだがどうにかならないのか
>>173 その「i」は私という意味でいいのか?
いいなら大文字にしてくれ。
180 :
あひ:05/03/19 21:37:43
001って0.01って意味か、まだ未完だったな。
>>180 追い抜け
いまさら別に作るのは激しく車輪の再開発の予感
英語が話せる人が.netのほうでコミッター増やしながらやったほうが早いわな
どっちも一人でやってる?
Dバインディング希望のTODOを挙げていこう。
OpenSSL
curses
PostgreSQL
SQLite
GD
PostgresってCがあるだろ?
QtもQtも
そろそろだれかE言語を
いやその前にD++を
いまだにcursesの需要があるのって、あれだなあ。
その前にD--を完成させて、それを元にDを
完成させて、そこからD++に発展させて・・・
>>192 D--を完成させるためにC++を完成させて、
C++を完成させるためにCを完成させて、
>>193 正直スマンカッタ。
とりあえずDスレだからDの話に集中するわ・・・
>>193 Cを完成させるためにアセンブラとリンカを完成させて
アセンブラとリンカを完成させるためにハンドアセンブルして
perl>>>>>>>>>>>>>>>>>>>D
逆じゃないか?
Cモジュールが豊富な分、そうとも言えない。
構文の汚さをさて置けば、perlが遅いというのは今や迷信?
perlインタプリタの起動が遅いのは厳然たる事実
正規表現ではperlにかなう者はない
PCRE
誰か上のをDに移植汁
Dで標準エラー出力にメッセージを投げたいのですがどうしたらいいですか?
>>203 import std.stream;
stderr. ...
放置で
誰かdigのコンパイル通った奴いる?
聞いてどうする...
自分でやってみたらウンコなほどエラーがでたから
>>199 Cより速いの?ってレス見ても思うんだけど、
結局実用に耐えうる速さが出れば問題がないと思う。
どうしても最速がいいのであれば、
然るべき手段を用いればいいだけであって。
そりゃまぁ、速いに越したことはないんだけどさ。
結論:CGIなプロセス起動は止め、JavaなWEB APでスレッド起動。
Perlの強みは汚くてちょっと遅いけど、ちょっとした問題を強引に解決することが出来る辺りだろうな。
evalみたいなのはインタプリタならではの強み。
なんでparlの話してんのや
>>210 むしろ、速度(ネイティブであること)以外、
JavaやC#を避けて、あえてDにする理由がどれほど残るのかと。
Javaは論外
hi all.
>174-177
no problem.
little spelling miss :)
i am english baby...
i am 2 years old.
i like to write english.
i am fun.
i am happy!
happy hakking d language!
hakking
disk disc
fuck yourself!
>>215 Java>>>>>超えられない壁>>>>>>>>D
じゃう゛ぁはろんがい
ver0.119からSJIS使ってると日本語コメントにまでエラー出るようになったけど、
わざわざUTFでコード書く必要があるのは結構面倒じゃない?
要望出したらSJISだけでも対応してくれないかな…
西欧言語もUTF-8が強要されることになるんだから通らんだろうな
西欧系言語は8bitに全部収まるから(拡張)ASCIIで書いてても
UTF-8と一致して普通にコンパイルは通ってるんじゃ?
今回の変更で影響受けてるのは、マルチバイト文字コード圏の人だけだと思う。
dmcには日本語対応にするコンパイラオプションがあるみたいだし
dmdでもそんな感じで対応してくれないかな。
-mbって感じのオプション新しく作って、-mb指定されたときだけ
UTF以外の文字コード判別、変換作業すればコンパイルに
余計な時間がかからなくていいと思うんだが。
#pragmaが無いのは致命的だったな
DMD0.117
pragma(lib, "library name"); を追加
230 :
225:2005/03/24(木) 09:19:27
>>229 調べもせずに適当なこといってすまそ。
UTF-8と互換があるのはASCIIの7bitだけか。
ってことは英語以外の文字圏の人はみんなUTF-8強制されることになったの?
だったらこの変更に対してnewsgroupでなんか反響あってもよさそうなもんだけど。
UTF-8で書けば問題ないからじゃないの?
文字列リテラルはUTF-8から変換するか、分離する方向で。
いまどきUTF-8に出来ないエディタなんてあるの?
かつてCtrl+Sにすら実装してなかったWin notepadでさえ
最新のバージョンではUTF-8にできるのに
>>232 まだUnicode対応してないエディタなんていっぱいあるぞ。
おいらはそれでSakuraをやめました。
サクラエディタのこと?
昔のは知らないけど、今はかなりサポートされてるよ
>>235 >UTF-8ってBOM不要というか付けると動作しなかったり
>自動認識ミスるソフトとかが多いから参るですよ。
明確な目印が付いてるというのに認識ミスるなんて不思議なソフトだな
「1110xxxx から始まったら3バイトコードだから・・・」みたいな部分を実装するのに頭がいっぱいになっちゃって、ファイルの頭にしか出てこないBOMのことは忘れちゃってるんだろうなぁ。
>>237 お前じゃないんだからさぁ。そんな糞ソフト多いわけねぇだろ。
UTF-8にbomって意味無いのでは?
UTF-16からでえしょ?BE/LEって
241 :
235:2005/03/25(金) 01:55:29
すみませぬ、言葉足らずでしたな。
BOM不要もしくは付けるなと言うことが多いけれども
付けなきゃ付けないで誤認されるパターンが多くて困るってこってす。
自分の試用したエディタはテキスト読み込むたびに
文字コード選択画面になる or 文字化けして開きなおす
ものだからBOM付けて判別確実にできるものはしちゃってるんだけどねぇ。
Winユーザーならxyzzyなどいかがか?
漏れはDのコード書くときはThebe使ってるけどね。
>>242 xyzzy-lispは汎用性に欠けるからmeadow
meadowってWindowsからみたら無茶苦茶じゃないか
ルック&フィールなんて飾りですよ。偉い人にはそれが分からんのです。
なんでxyzzyはemacs-lispじゃなくて独自のlispにしちゃったんだろう。
理由判る人います?
Dに関係ないな
>>246 独自LISPじゃなくてCommonLispじゃないの?
Emacsの方が独自かと。
xyzzyは作者がやる気がないのが難点
いい加減スレ違い
DコンパイラはHTMLでコードを修飾できるけれど、これ、意味ある?
コメントを抽出・整形する外部ツールはいくつもあるわけで、それに対して
コンパイラがそのまま食える利点ってのは、コードがコードでありドキュメント
であることだ。
だけど、DコードをHTMLなんかで修飾しちゃったら、ドキュメントとDコードの
見易さを両立させることなんて至難の業だから、HTMLで修飾する労力を
コメントとコードを見やすく書くことに振った方がよっぽどマシだと思うんだが。
意味があるかどうかは人に聞くもんじゃない。
253にとっては無意味だった、それだけの話。
>>253 HTMLに加工する作業を手作業でやるのか?藻前は。
int main(char[][] args)のargs[]ってUTF-8に文字コード変換されずに
引数の文字列そのまま入ってる気がするんだけど、これっていいの?
>>254 > 253にとっては無意味だった、それだけの話。
他の人にはどんな意味があるのか聞きたい。
>>255 あー、開発用コードは素の状態で保持されてて、
リポジトリにはバージョン毎のHTML化済みコードを置いたりするのか。
そうすると、キーワードハイライトとかしたら生ソースの可読性が著しく
落ちたり、HTML化済みコードから素のコードを取り出すのに外部
ツールが要ったりして、利便性は落ちるんじゃないか?
生ソースの閲覧やコードの再利用は考えない方向で行くべきかな、その場合。
>>256 char型である以上、スタートアップで面倒見るべきだよなあとは思う。
string型はありませんか?
>>257 > 他の人にはどんな意味があるのか聞きたい。
書いたコードをWEBで公開するときに楽。以上。
char[]にSJISが入るのは気持ち悪いな。
このままだと日本語含んだパスを引数に渡した時落ちるアプリが量産されそう。
自動的にUTF-8に変換されるべきじゃないの?それかdmainもchar*使った形式にするか。
DUIを突っ込もうとする -> GTKとか入れんのメンドクセ
cygwinにDUIを入れようとする -> コマンドの構文が間違ってるとか言われたが
makefile修正すんのメンドクセ
今度はdigを入れようとする -> エラーがいっぱい出たがコードを修正、でももうダメぽ
さて、これからどうしよう・・・
つうかここで聞いても解答が得られる訳ねぇだろアホが
MLとかWikiのほうにさっさといけ
269 :
デフォルトの名無しさん:2005/03/28(月) 20:55:00
“あまり賢くない人は
自分が理解出来ないことについては何でもけなす”
ラ・ロシュフコー
つまり将来像としてWebベースの何かを構想してるんじゃないか?
HTMLはその布告というか。
>>269 著作者の言葉ならなんでも引用すればいいってもんじゃない。特にそいつは当てにならん。
>>272 “あまり賢くない人は
自分が理解出来ないことについては何でもけなす”
D言語スレってRuby並のキチガイで溢れかえってるね
残念ながらRuby並のキチガイで溢れ返ってないスレは
よほどマイナーな言語以外は存在しない
CもC++もJavaもどこもキチガイだらけだ
プログラマは一般にキ(ry
unittestってどんな使い方してる?
いくつかのモジュールを含んだソースの場合一気にunittestされるから使いにくい。
unitestはmainのいらない本当のunittestができるようにして欲しい。
>>276 人数少なければ少ないで基地外は現れるよ。
よって温かい心で放置しる。
>>278 unittest だと、そんな風にすべての unittest が実行されちゃうから、
debug (hogehoge) みたいにして特定の時だけ有効にできるようにして、
unittest は使わないようにしてる。
どうでもいい事なんだが、京都の旭屋書店からD言語パーフェクトガイドが遂に撤去されてた。
思えば3ヶ月程前から全く売れてなかったからなぁ・・・
近所の本屋では、最近まで雑誌コーナーで平積みになってた。
売れ行きはともかく宣伝効果は大きかったと思う。
Dなんかどうでもいい。今さら古くさい手続き型言語なんて誰も興味がないのさwww
またLisp厨か
最近あちこちで沸いてるな
>>284 > またLisp厨か
別にLispが一番なんて言っていないよ。
スルー汁
Delphi最強
Delphiは言語じゃなくてIDEだろ?
Delphi/Kylixってどっちもタダ?
乞食に使える言語なんてない
C#はタダだな
俺ひきこもりだが100個以上の言語を自由自在に使いこなします。はっきり逝ってすごいので、みんなびびりますよ、きっと。
悪い、おれ200個だわ
言語は○本て数えるんでね?
言語って全部で何個あるの?
296 :
デフォルトの名無しさん:2005/03/29(火) 20:04:08 ID:
なにこのID:って
あるとき突然全てのIDが表示されて自演してた皆が泣くトリック
初めからこのスレ住人は一人だよ。というこのレスも自演。
ばかだなあ、俺がいるじゃないか。こんなレスも自演。
>>295 例えば、今俺がBrainfuckのインタプリタをいじって'['を'{'にしちゃったら別の言語になるよ。
>295
高々有限個です
なんだなんだ?THCompの出番か?
じゃあとりあえず、俺が作った言語を圧縮して置いときますね。
ymdlang.thc
↓↓↓↓↓↓↓ここから↓↓↓↓↓↓
0x00838861
↑↑↑↑↑↑↑↑ここまで↑↑↑↑
THcompとか言ってる奴何歳だ?
32bit圏はそろそろ埋まってる頃じゃないか?w
じゃ、漏れが昔作った言語パッケージをTHCompで置いとくよ。
ibasic.thc
0x001ba51c
お前ら年食いすぎ
何しろ超エリート中学生だからね。ハハハ
ヽ(・ω・)/ ズコー
\(.\ ノ
310 :
デフォルトの名無しさん:2005/03/30(水) 21:13:35
THCompを実装する方法
準備
(1)readme.txtに高性能圧縮プログラムを利用するために、
毎回インターネットに接続していなければなりません。
と記述しておく
(2)HDDの容量が大きく、100Mbps以上の回線を確保したサーバーを用意する。
実装
- 圧縮 -
(1)圧縮するファイルを適当な形式で圧縮する
(2)サーバーに送信する
※1, 2は圧縮中と画面に表示させること。
(3)サーバーが割り振られたIDを送る
(4)受け取って表示する
- 解凍 -
(1)サーバーにIDを送る
(2)サーバーが対応するデータを送信する
(3)データを受信する。
(4)受け取ったデータを解凍する。
※3, 4は解凍中と画面に表示すること
以上
んなこたーわかってるよ
313 :
デフォルトの名無しさん:2005/03/31(木) 04:04:14
で、C/C++のシェアは抜けましたか?( ´,_ゝ`)プッ
そして話題はRuby&Java叩きへ
Web系への応用に興味ないのか?
ん
なんだこの年号はw
各板で専用年号が付けられてる最中だぞw
PC鯖の板は何になるんだろう。
過去ログ見るときにいつのかわかりづらくね?
西暦から1970を引けばいいのに・・・・
西暦とかつかってる奴は非国民
>>320 time() かー、確かにこの板向きかも
UNIX板の方がそれっぽくない?
10桁整数もアリだな
16進数
ハァ? コンピューターは2進数が基本だろ。ヴァカかオメーら!
16進も2進も却下だろ。すぐに読めねーよ。
ヴァカだからヴァカって言うんだよ!!
>>329 (お前が)ヴァカだから(オレが)ヴァカって言うんだよ!!
(オレが)ヴァカだから(オレが)ヴァカって言うんだよ!!
どっちだ。
ヴァカしかいないスレはここですか?
>>331 そりゃ、まぁDなんて使ってるくらいだから。
激しく尿意
漏らす前にトイレ行け
dmdはamd64環境はOK?
DMD 0.120 出ました。
こんな調子でDMD 0.1000とかいくのかな~?
Java>>>>>>C++>>>>>>>>>D言語。
現実は非常である
>>338 Dはともかく、
> Java>>>>>>C++
これは明らかに現実見えてないだろwwww
>>338 >現実は非常
Java厨ってタイプミスばっかりだなw
リアルでそれが正しいと思ってんじゃないの?
空想は頭のこやしです
妄想は頭のぬるぽです
ぬるりるれろ
つまり彼は妄想の世界に生きる人間で
現実が非常なわけだ。さすがJava厨。
Java最大の功績は「ぬるぽ」の発明だな
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←
>>343 (_フ彡 /
>>346 激しく同意。だがそれはそれとして
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ ←
>>346 (_フ彡 /
ぬるぽなんかどうでもいい
なんかスレも言語も終わってるっぽいな
言語自体の進展はちまちまあるけど
じゃぽんコミュニティは好きでやってる個人ばかりだから
リアル忙しい(もしくは熱が冷めた)人が多いと全然盛り上がらないわけだ。
エディタとかでもD言語用色分けファイルとか見ないもんな。
GreenPadには入ってるぞ!
EmEditor用のもあるな。
Dを実開発で盛り上げていくにはどうしたらいいだろう。
まずはWeb系のシステム開発で使える基盤を整えるべきだと思う。
よく使う機能をライブラリに盛り込むとかは要件になってくるじゃないだろうか。
例えば
・セッション機能
・暗号/復号ライブラリ
・データベース・インターフェース
・クラスタリング/フェイルオーバ
・
・コネクションプーリング
あと、OSにバンドルしてもらうゆに働きかけたり。
他コンパイラ企業の参入もいるな。
日本語のforumが欲しいな。
向こうのnewsgroupは量が多すぎて
興味がある所しか見てないし。
日本のDユーザーって結構、多い方だと思うけど
newsgroupに定期的に投稿してる人っていないよね。
前にこのスレで、英語めっちゃ苦手だけど頑張って投稿するみたいなこと言ってる人いなかったっけ?
>>353 それ以前に、変わらないと保証できる言語仕様を決めてくれ…
>>353 実開発に使うならクラス不足を解消しなければならないし
そのためには言語仕様を拡張してJavaVMに乗っけて
Javaのクラスをそのまま使えるようにすればいい。
拡張D言語その名はDava(駄馬)
まあいけてもせいぜいRubyレベルだろ。
所詮マイナー言語で終わる。
360 :
デフォルトの名無しさん:2005/04/09(土) 16:03:58
「プログラミング言語は満載した機能を特色の第一とするものではない。
あとになって機能の追加が必要と判明するような弱点と制限を取り除いて設計すべきである。」
(アルゴリズム言語Schemeに関する第五改訂報告書、犬飼 大訳)
Dはどうですか?
Dはどっちかっていうと対極にある言語だな。
汎用的で強力な機能を削って個別にいろんな機能をぼこぼこくっつけていくのが好きだからな。
>>360-361 そーゆう理想論を考慮しないで設計されてると思う。
理想論者から見れば色んな風に見えるんだろうけど。
理想論かどうかはわからんが、傾向としては361みたいな感じで、360とは対極だな。
Dみたいに、個別の特殊機能をどんどん付け足してく言語って
次から次へと弱点が露呈して時代遅れになり、使われない機能満載に
なっていくよな。
Dは初めから時代おくれなんだよ。
Dにはこれといって目新しいものがない。
そう思わないんだったら目新しいもの一つでもあげてみろよ。
>>366 目新しい機能を細かくたくさん付け加えていく=時代遅れ
なんだよね。プログラム言語の設計の考え方の分野では。
かといってシンプルでもないだろ?
今は確かにDの数々の機能は先端を行ってる物が多いかもしれないが、
数年たって個々の機能に不備が判明しだしてくると、欠陥だらけの言語に
なり始めてるだろうな。仕様変更を繰り返してつぎはぎだらけの
言語になってるかもしれないな。
>>370 デリゲートとか、配列のスライシングとか、UnitTestとかDebugとか。
その辺は先端を行ってるじゃん。
厳密に言えば、先端を行ってる他の言語から取り入れたものだから
本当の先端ではないけども。
Dはこうした先端機能を、すぐに次々と加えていく傾向にある。
>>368 目新しい機能を細かくたくさん付け加えていく=時代遅れ=D
ってことが言いたいわけだが。
>>371 ごめんやけど、あんまり先端とは言えへんかもしれへん…
>>373 まあ少なくともメジャーな言語の中では割と先端じゃないかと。
C++にもJavaにもない機能多いし。C#にもない機能あるし。
D言語がメジャーだったとは、はつみみです・・・
揚げ足取りだな。
メジャーな言語と比べればってこと。
つうか意見見ればわかると思うがアンチDなんだけど?w
ミスリードを促しながら自分でアンチと宣言することに意味はあるんですか
いや、そちらが、なにか意見の本質とは全然違うところに突っ込んでるだけで
こちらの意図としてはミスリードを促してるつもりはないし
むしろ、そちらがミスリードをしないように宣言をしてるわけで。
もしかして日下部本人に捕まったかw
>まあ少なくともメジャーな言語の中では割と先端じゃないかと。
これは?????????
>>380 だから、メジャーな言語と比べれば割と先端だと訂正したんだが。
関数型言語が最強です
>メジャーな言語の中では
修正?????????
アッソ
俺も最初から
>>375の突っ込みにアッソって思ってたけど
議論とは全く関係ないどうでもいいことだったので
メジャーかどうかなんて問題ではないんだよ。
ここは実と殻の区別も付かないお子さまが多いんですか?
D言語の方針がいまいち
個人が作った俺言語と同じ
>>387 >ここは実と殻の区別も付かないお子さまが多いんですか?
わかりません。
どこが実で、
どこが殻なのか説明お願いします。
>>387 区別ついてないみたいだな。
粘着なので相手するだけ無駄じゃね?
>デリゲートとか、配列のスライシングとか、UnitTestとかDebugとか。
これらのどこが先端なんですか?
>>389 387じゃないが
実=Dの方針はどういったもので、それが良いか悪いか
殻=Dがメジャーかどうか
でも結局は中身がない議論だということに変わりは無いんだよね。
>>390 議論も始まってないのに、もう相手するだけ無駄宣言ですか?
>>391 登場した年代が他の機能と比べて新しいところじゃないでしょうか?w
もしお子さまなら、議論に参加する資格なし。
>>394 ああ、そうだったな。君がしているのは議論じゃなくてただの揚げ足取りだったね。
>Dはこうした先端機能を、すぐに次々と加えていく傾向にある。
D自身にそういった先端機能を加える能力はありません。
>>398 また何かわけのわからないこと言い出したw
多分また本質と関係ないところに突っ込んでるんだろうな
まあ、マクロを排除した時点で俺の興味の対象から外れた
>仕様変更を繰り返してつぎはぎだらけの言語になってるかもしれないな
なってます
確かに既に結構なってるな。
>s[1..2] = t[0..1];s[1] = t[0] と同じ意味
>s[0..2] = t[1..3];s[0] = t[1], s[1] = t[2] と同じ意味
意味不明・・
>s[] = 3;s[0] = 3, s[1] = 3, s[2] = 3 と同じ意味
>p[0..2] = 3;p[0] = 3, p[1] = 3 と同じ意味
もはや使うのが怖い
>a[] = b[] + 3;
>
>の結果は次と同等です:
>for (i = 0; i < a.length; i++)
> a[i] = b[i] + 3;
D言語マジヤバイ
春だねえ
なんでリストが標準で用意されていないんですか
Dって末尾再帰の最適化はされますか
だ~か~ら~
Perl>>>>>>>>>>>>>>>>>>D
>>409 んなわけあるかい、氏んどけやあほんだらぁ。
機能だけ見たらPerlって結構いいと思うんだけどな
perlとか言うい出す奴は文系
>>413 え~、そんなことないよー
C99考えているときに末尾再帰の最適化をしようとするかどうかっていう議論もあったぐらいだよ~?
無駄機能満載系の先輩、PL/Iよりも流行らない予感!
stringすらないしな
>>377 アンチと的を得ない批判は対極にあるよなぁ・
そうなのか?
あんまり関係ないような。
でもDっていう名前のおかげで流行る予感。
流行る流行らないは案外そういうところで決まる。
少し餌を撒いておけば、お馬鹿なム板住人はすぐに釣られてしまうんだよな。
そして少しずつ俺の思い通りの方向に進んでいることにも気づいていない。
笑ってしまうよ。ハハハ
いや、貴様ではない。俺の思い通りの方向だ。
へモア>>>>>>>>>>>>>D
D言語じゃ無理
「的を得る」って本当は間違いじゃないらしいね。
ATOKが間違いだと広めてしまったのが間違いらしい。
D言語じゃ的を得るなんて無理
427は浪人生
的(正鵠)は「得る」もの。
「射る」のは矢。
「的を得る」という表現は、日中出版『論語の散歩道』重沢俊夫著(p.188「それが的をえていればいるほど」)や、
大修館書店『日本語大シソーラス』山口翼編の「要点をつかむ」という項目にもあります。
また小学館の『日本国語大辞典(12)』にも「まとを得る」があり。
>>430 矢などを目的物に当てることも「射る」という。
矢などを目的物に当てるひとは「得る」といわない。
いい加減にせんか、ばかものども。
>>432 漢語では矢などを目的物に当てることを「得る」と言っていた。
ATOK クソだな
末尾再帰が使えるのは関数型言語だけ
>>436 そないなことあらへんわ。
実装次第や。
実装に依存しないのは関数型言語だけ
掲示板で関西弁を使うのは437だけ
D言語はWeb方面も視野に入れてるみたいだけどParrotに含まれて居ない時点でもう駄目
オブジェクト指向の時点で終わってる
Delphiと間違われる時点で死んでいる
アホが増えてきたのもDが一般エンジニアにも認識されてきた兆候だな。
このままJavaをリプレース汁
またゴミ言語が出てきたか。
これ以上負の遺産を増やさないでください。
やたらアンチの多いスレだな。
それだけ支持されていないっていうことだろう
で、Ci言語とどっちが完成度高いの?
なんすか、そのCi言語とやらは
ま、D言語に完成度を求めるのは無理。
漏れはオブジェクト指向言語の中でも組み込み系開発に向きそうなんでDに注目してる。
(C++はカス)
VMに依存しないところとか、ネイティブコードを吐けるところとか、インラインアセンブラとか。
SH用のDクロスコンパイラでも作ってみるか…
自分のソースのバグですら、検出に苦労するのに、
バギーなコンパイラを使う奴の気が知れない。
>>452 おいおいこんな所で「私はプログラマに向いてません」って宣言してどうするよ
どこでどう宣言したの?
きっと電波でも受信したんだろ?
やっぱお前らPG向いてないよ。やめたほうが良い。
>>453が一番プログラマに向いてませんね!!
転職しましょうwwコンビニへGO!
よくコンビニなんかで働けるな
おれは立ち仕事は無理だ
460 :
デフォルトの名無しさん:2005/04/10(日) 21:06:15
というかコンビニをなめんなよ!!
このカス野郎めが!!
>>460 世の中のDQNを相手にしてると、そういう風に荒れてくんだね
よくわかるよ
>>462 それが全部D言語のプログラムなんですね。感動しました!
なんかDelphiにみえる
いやDってDelphiの略称だし
でもDelphiってPascalだよな
そうでもない
6まではパスカルだったじゃなかったですか。
Delphi1まで遡って全てはDelphi言語だと言い張ってます。
Delphi作ったやつってもう某国にはいないんだよな
C#に寝返ったんでそ?
じゃあD#.netとか出るのか?
D.netならもうあるが
聞いてねーよ
>>473 MSが#もつけずに有りものの言語をそのまま出すわけ無いだろ(w
M$製ってことではなくってDからMSILへのコンパイラだよね?
C#っぽくなるってことでしょ
プログラムをCGIとして動かしています。
post渡し(multipart付)で大量のデータを渡すと
49152以降のデータが取得できません。
stdin.sizeは、
CONTENT_LENGTHのサイズよりも少なく
49152となっており
stdin.readBlockとかでデータが取得できません。
stdinから49152バイト以上のデータを取り込む方法を教えてください。
>>480 PerlかPHPかCかJAVA使えば大丈夫。なんの問題も出ない。
482 :
480:2005/04/13(水) 16:20:02
すんません出来ました。
ubyte[] data;
while(stdin.size != 0){
int block = stdin.size;
ubyte[] buff;
buff.length = block;
stdin.readExact(buff,buff.length);
data ~= buff;
}
DigitalMarsって名前空間嫌いなのか?
>>484 好き嫌いに関しては人の情動なのでうかがい知ることができないけど、
必要無いと書いてる。
その理由が、ファイル名スコープで充分で、名前空間を処理したいなら、
ファイル名で操作すれば良い。と考えてるそうなので、ファイル名で
の名前空間では、こんな不便が起きる、または名前空間をサポートすれば、
こんな便利が有る。
この点を指摘してみれば良いでしょう。
こういうおいらも、名前空間はファイルを開くか、サポートツール使わないと
把握できないので嫌いです。
8.3形式のFSだと最大8文字になると。
>486
フォルダ
487 が何を言いたいのかわからん orz
分かるが、舌足らずバカの代弁をする気にはなれねーな。
拡張子の3文字も名前に含めれば最大11文字
ネームスペースの方が意味の取りやすい単語が使える予感!
だから
Perl>>>>(越えられない壁)>>>>D
includeすると酷いことに。
C# or Dead
DMD 0.121リリース
>三項演算子がnull及び配列で動作…
ますますわけわかんない書き方が出来そうな予感
名前空間の扱いに関してはPythonが秀逸。
ん?
これってSolarisのスクリプト専用じゃなかったん?
ObjectPascal>>>>(越えられない壁)>>>>D
502 :
デフォルトの名無しさん:2005/04/22(金) 17:54:37
おまえらD言語に何期待してんだ?
ここは俺みたいな言語オタ以外が見ても時間の無駄だぜ?
むしろ言語オタこそ、D言語なんか見ても時間の無駄。
ぬるぽのあるJava>>>>(越えられない壁)>>>>D
君にはがっかりさせられたよ
アセンブラ>>>>(越えられない壁)>>>>D
C++とJavaがある以上、中途半端杉。イラネ。
Webの話になるが、
アプリケーションサーバを含むマシン構成だとシステム全体が複雑化する。
その結果、顧客にも膨大な出費が強いられてしまい、近い将来ウンザリしてもっと安い手段を模索するようになるだろう。
そこで最初に白羽の矢が飛ぶのはCだろう。
他の言語に比べて圧倒的なそのパフォーマンスが再評価され少ない費用で十分な品質が得られる。
そしてCの路線を踏襲しつつももっと利便性を引き上げたDが注目されるようになる。
膨大なCの資産をうまく活用できる事がDの普及を加速させるだろう。
DTLが使い物いなるなら
考える
OTLの親戚でつか?
orzの親戚かな
>>510 開発効率は無視か?
アプリケーションサーバを使えない事情があるのなら、普通はPHPかPerlあたりに落ち着くだろ。
Cまで検討するのは、アプリケーションサーバを使ってもパフォーマンスに問題が出る場合くらいだ。
Cでリプレースする金でスケールアウトした方が早いな
ネタにマジレス(r
phobosってstdの階層で環境変数をとれるモジュールってあったっけ?
暗黙的にEnvとかの名前で環境変数が取れる方法があったらいいのに
Javaだってやっと使い物になってきたとこだというに
新興の言語が普及して安定した動作をするまでには時間がかかる
ノウハウの蓄積にも時間が必要
Javaは1,0の頃でも、こんなに不安定じゃなかったぞ…
業務にも採用されてたし、金融システムみたいなクリティカルなものでも、
未だに1.1.xを使ってるものが多い。
dstress見てると、ここ2、3バージョンで急激にバグが減ってるような。
そろそろver 1.0出してくれないかな…
バグが減ったらまた大幅な言語仕様の改革に乗り出せるという物だ。
配列リテラルができたら後はもういいや。
さすがにもう大幅な仕様変更はないだろ……と思いたい。
現仕様で1.0だして、後は1.0.xxxって感じでバグfixしてけばいいのに。
そだね~、そろそろ安定版としてリリースして欲しいよ。
なんだよそのやる気のない公務員のような後ろ向きの姿勢は。
お前らにはがっかりさせられたよ。
HDDこわれた~
とかいって開発終了に決まってんだろうが
腐ってやがる…早すぎたんだ。
elephantバージョンあp
しかも更新日時2006年。
超最新。
未来からソースを送る技術がついに確立されたのか!
タキオンキタ━━━━━━(゚∀゚)━━━━━━ !!!??
ただのサマータイムだろ
どこで配布されてんの?
elephant知らなくても「D言語 elephant」でググるだけでも辿り着けると思うんだが。
…GW突入か。
つか、ver0.14に上がって更新日時も直されてるな。
elephant0.15
…つー報告はスレ違いっぽいから以後要らない?
>>537 いや違ってないんでない
っていうか使用感とかもplz
>>537 とりあえずリリース当初から使ってるけど…これはおススメできない。
ブロックの終わり } の記入後も字下げされたままだったのも直ったし、
「プロジェクトから開く」がようやく出来るようになり、大分使いやすくなったけどまだまだバグだらけ。
とりあえずバージョンアップするごとに設定しなおさなきゃなんないのは
設定ファイルごと上書きしてるんだから、まあバックアップしない漏れも悪い。
クライアント領域外を汚す行儀の悪さも…まぁ簡単に消せるし開発に影響はないから許せる。
初回起動はなぜか環境設定系が反映されないのも、もう一度やり直せば良いだけだから良し。
デフォルトで標準ツールバーとワークスペースが非表示なのも、表示するよう設定して
iniファイルに記録させれば以後は表示されるから問題なし。
アルファベットの綴りミスやショートカットキーやアクセラレータが自分流なのも
DMD Pathを設定後のDMC PathとRC Pathが逆なのも
プロジェクトを閉じれなかったりするのもプロジェクトの新規作成時に落ちる場合があるのも許容範囲。
でも直してくれたらもっと使いやすくなると思う。
まともなIDEが欲しいからElephantには期待してるんだけど、
どうもエディタの部分とか癖があるよね。DIDEの頃からだけど。
DMD 0.122リリース
Phobosの日本語対応ってどんな感じ?
std.fileはちゃんと対策されてるみたいだけど。
見た感じstd.processとかchar[]そのままtoStringz()で渡しててだめっぽい。
543 :
デフォルトの名無しさん:2005/05/07(土) 23:43:47
544 :
デフォルトの名無しさん:2005/05/07(土) 23:52:42
546 :
sage:2005/05/08(日) 19:05:20
OpenGLでも、ボーン入りモデル再生とか簡単?
547 :
デフォルトの名無しさん:2005/05/08(日) 20:07:18
多言語に対するメリット、デメリット一覧みたいなもの、
どっかにあります?
うーん、言語が機能を持っているか持っていないかだけの印象。
それによるメリットデメリットが知りたい。
Error: circular inheritance of interface
って何だ?
interface A : B {}
interface B : A {}
int main() { return 0; }
>>551 サンクス
でも122にして、いきなり出るようになったし
そういうimplementはしてないのになー
553 :
デフォルトの名無しさん:2005/05/08(日) 23:34:11
>>552 -Fixed problem detecting circular interface heirarchies.
ということだから、この修正が引き金になったんだろう。
552=543
なのですが、パッと見た感じ怪しいソースは無いように思います。
何処かありますかね?
せめて、interface名教えてくれればいいのに。
>>556 ありがとうございます。_(._.)_
少しは、英語読め!!って話w
アホメンテのおかげでいつまでたっても実用にならない
それで、作りかけのライブラリを皆さん放置なのかなw
DIDEって、もう手に入らない?
>>288 DelphiはDelphi言語です(マジで)
旧ObjectPascal。
次々々々々々々々々々々々々スレ
>>288 今回のバージョンアップでようやくまともに使えるようになったな。>IDE
あとはコンパイラの完成を待つばかりだ。
未来からソースを送る技術がついに確立されたのか!
565 :
デフォルトの名無しさん:2005/05/12(木) 01:35:50
ソースを修正← バグが出る。
↓ ↑
過去に送る → 実行
黄金周期と呼ぼうか。
過去の中の人は大変だな
つーか過去の中の人がモタモタしてると現在の自分に追いついて
結局ソースを修正しながらデバッグだな
これってバグですか?
ver dmd0.123
/*code page utf8 */
private import std.stream;
void main()
{
char[] str = "ワロスw";
stdout.writeString(str);
return;
}
だと、出力は
バイナリで
E3 83 AF E3 83 AD E3 82 B9 EF BD 97
正常で
ここを
char[] str = r"ワロスw";
や
char[] str = `ワロスw`;
にすると
E3 E3 E3 EF
になってしまう。
dmd0.119までは、こんなことなかったんですが
仕様変更?
たぶんバグ。dmd0.121からwysiwyg文字列にUTF8チェックが入ってるけど
stringbuffer.writeUTF8(c)するの忘れてる。
まだbug報告されてないようだったら、誰か詳しく調べてバグ報告よろ。
便乗質問
char[] str = `
ワ
"ロ"
スw`;
は、エラーじゃないのに
char[] str = r"
ワ
"ロ"
スw";
は、エラーになるんだけど
そういもん?
>569
\"
>>570 `` と r""
っていっしょじゃないの?
wysiwyg文字列の中だからエスケープシーケンスは使えないぞ。
>571
基本的には一緒。ただ、文字列に " 含めたい時はr"" じゃなくて``の方を使う。
>>572 なるほど
勝手に、r"から最後の"までと思ってました。
基本的に``をつかったほうが、楽でいいってことですね
>>574 そういいつつまた、自分ではやらんセオリー
ワロスw
DMD 0.123リリース
…ってガイシュツか。
>>574 NetNewsって
UFT8で投稿できるの?
英語は、読むだけで精一杯・・・
大して難しいバグでもなさそうだし、dmd0.121辺りから
non ascii charが入った場合のwysiwyg文字列が、
おかしいことになってます。って書くだけで通じるんじゃない?
というわけで誰かよろしく。
ソース見れば解るだろうから、
Illegal non-ascii WYSIWYG string.
ver dmd0.123
/*code page utf8 */
private import std.stream;
void main()
{
// valid
char[] str = "ワロスw";
stdout.writeString(str); // valid output : E3 83 AF E3 83 AD E3 82 B9 EF BD 97
// invalid
char[] str2 = r"ワロスw"; // or char[] str = `ワロスw`;
stdout.writeString(str2); // invalid output : E3 E3 E3 EF
return;
}
>>581 ワロスwで
投稿するのか?
日本語を入れて
相手は、見るのか?
584 :
デフォルトの名無しさん:2005/05/13(金) 08:48:13
日本語を読むかどうかは知らないが、そういう文字列であるというのは伝わるのでは?
>>584 10行もいかないソース(UTF8)を添付して
投稿すればいくね?
恥ずかしがりやな俺には無理だけどな
coolとかの反対
noobとか
587 :
デフォルトの名無しさん:2005/05/14(土) 00:11:45
チキンの集うスレはここですか?
dstress、dmd 0.123もいい感じでバグ減ってるね。
この調子なら夏ごろには1.0になりそう?
567のバグ調べてたんだが wchar[] str = r "でぃーげんご";
がinvalid UTF-8 sequence エラーでてコンパイルできない。dchar[]も。
これもdmd0.121から。
あと上の文字列、char[]だとstr.lengthで18が帰って来るんだけど、
これバグだよな? wchar[]とdchar[]は6が帰ってくるし。
バグじゃないです。
lengthが文字数を返すと思ってるのかもしれませんが、lengthは文字数ではなく配列の長さを返すものです。
UTF8では日本語の文字は大抵が一文字を3byteで表すので文字数と配列の長さは当然変わります。
.lengthが返すのは配列の要素数。
char型(8bit)の配列要素数返してる、って意味では
これでも正しいんだろうけど、これだと文字列のスライスが使い物にならない。
というか何でchar[]はUTF-8文字列なのにchar型は8bit固定なんだ?
char x = 'あ'; とかできてもよさそうなもんだけど。
592 :
デフォルトの名無しさん:2005/05/14(土) 12:35:02
dchar x = 'あ';でいいやん。
んで文字列はdchar[]を使えば完璧。
elephant 0.16リリース
elephant 0.17リリース
…空気嫁手なくてスマンコ
Elephantどっからダウンロードできんのさ
wiki→リンク集→統合開発環境
>>594 なんか、livedoorってところで、既になんか萎える感じだな
>>597 いや、検索すりゃトップに来るからわかるよ。で、どこからダウンロードするのさ
600
リンクが消えてるな。
構わず手入力で/esetup.zipから落としてみたらどう?
漏れはそれで落とせた。
(既に普通に0.17を落とした後だからキャッシュ関連つーのも考えられるけど)
603 :
sakurai:2005/05/17(火) 11:38:27
ageちゃったスマヌ
メーリングリストに投稿しときました
まちがえた、ニュースグループに投稿しました。
でも、更新されないみたいです。なんでだろ。
>603
わーい
ありがとう
VisualStudio2003で使ってみたけど、
Compiling Project winsamp ...
-ofProject1 -debug -g "hogehoge.d"
winsamp build failed.
と出て、コンパイルに失敗。
コンパイラにパスとおしても駄目ですた。
プロジェクトを右クリック→[General Settings]→[Compiler Path]
からdmdのpathを設定してる? 後、サンプルのwinsamp.dコンパイルするなら
gdi32.libをリンクする必要が。
>プロジェクトを右クリック→[General Settings]→[Compiler Path]
すまん。出てこない・・・。
>>611 >リンカの出力が表示されないbugくらいは直したいんだけどVS2003だとどうにも。VS2005だとちゃんと動く。
対応状況ぐらいは見ような
ガーソ
615 :
567:2005/05/20(金) 10:47:53
D 0.124 でました。
直りました。
ありがと
D.bugs/3999ワロスw
確かにワロスだな
修正されますたなw
>>616 吹いたw
ところでOTLってi18nなんかな
ワロスw
DMD 0.125リリース
遅ればせながら、D言語はじめたんだけど、拡張子.dみてふと思った。
これって、GNU MAKEとかで推奨されてる依存関係記述ファイルの拡張子と被ってるね...
static ifとiftypeの使い方解説キボンヌ
あんまりよくわかってないけど。
static ifを使うと、識別子しか使用できないversion文の代わりになるとか。
const int VER = 0x0490;
struct A {
int i;
int j;
static if (VER >= 0x0490) {
int k;
int l;
}
}
とか。
でも、Walterタソ自身が、
"I'm not too sure about iftype. Let's see how it goes. Consider it 'experimental' for now."
とか言ってるしなあ。
Newsgroupsより、Walterタソがstatic ifを思いついた経緯。
> metafun type integer(int numbits)
> {
> if (numbits<=sizeof(char)) return char;
> if (numbits<=sizeof(short)) return short;
> if (numbits<=sizeof(int)) return int;
> if (numbits<=sizeof(long)) return long;
> if (numbits<=sizeof(cent)) return cent;
>
> metathrow "Compiler error";
> }
You've inspired me:
static ifとかiftypeってtemplateと組み合わせてメタなプログラムを書くのに有用かも。
templateの特殊化で書くよりかは、すっきりした形になるだろうし
template fib(int n) {
static if(n < 0)
static assert(0);
else static if(n == 0 || n==1)
const int fib = n;
else
const int fib = .fib!(n-1) + .fib!(n-2);
}
void main(){printf("%d",fib!(10));}
あんまり意味はないけど、とりあえず参考程度にフィボナッチ数列を求めてみました。
templateの特殊化をしなくてすむので読みやすいのが良いかな
あら
iftypeってのはどうかなあ。
構文が3種あって、
1. iftype(型 : 特殊系)
2. iftype(型 識別子)
3. iftype(型 識別子 : 特殊系)
1. 型が特殊系と同じか、暗黙に変換できれば条件が満たされる
2. 条件は常に満たされていて、識別子が型のaliasとなる
3. 1.と同じだが、識別子は特殊系のaliasとなり、特殊系が識別子に依存する型なら、
導出された型のaliasとなる
かな?
わけわからん。
static if文があるなら、static switch文も欲しいなぁ。
それがあれば、もう少し便利になるのに
ものすごく、くだらない質問。
Windows環境で、コンソールに2バイト文字の日本語を表示したいんだけど、どうすればいい?
コマンドプロンプトのコードページを変えればいいかと思ったけど、どうもシフトJIS以外にはないし(設定方法があるのかな)
シフトJISに変換して出力?
WriteConsoleW()?
俺の場合はstd.file.toMBSzで変換して出力してる
WriteConsoleだとConsoleにしか表示できないからリダイレクトとか出来ないし。
Windows で nkf かよ
うっす初めまして。
Macにgdcを入れようと思ったんだけど、
http://www.algonet.se/~afb/d/Makefile って10.3限定?
10.4だとmake gdcで
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:
http://developer.apple.com/bugreporter> for instructions.
{standard input}:5:FATAL:.abort detected. Assembly stopping.
gnumake[2]: *** [d/d-lang.glue.o] Error 1
gnumake[1]: *** [install-gcc] Error 2
とか出る。
639 :
638:2005/05/22(日) 21:32:12
自己解決しました。
gccに3.4.xが指定されていたのが悪かったみたいです。
gcc3.3.5にMakefile書き換えたら解決。
Wiki4DにはGCC3.4でテスト済みって書いてあったのに…
elephant 0.19リリース
elephant 0.20リリース
早い...
0.12の頃は激ヘボIDEだったのにいつの間にかスッゲー使いやすくなってる。
ワラ
elephant使ってると時々ソースファイルの内容が失われるのは俺だけか?
記憶が消えるよりまし
微妙にワラタ
elephant 0.21リリース
651 :
650:2005/05/30(月) 07:26:32
なんだこれ…
プロジェクトを新規作成すると(ウチの環境だと)100%の再現率で落ちる。
0.20に戻そ。
>>560 海外探せ。
漏れは3日ほど前にどっかから落としたぞ。
バージョンは0.995aだった。
D言語で、windows上でcursesを使う(か、それに類する機能を使う)にはどうしたらよいのでしょう?
pdcursesのcurses.hをポーティングしてcurses.libとリンクする手しかないのでしょうか。
>>654 二二二二二二l | ̄ ̄ ̄ ̄ ̄| ポーティング!ポーティング!!
| | ♪ _________ ♪ | ∧_∧ さっさとポーティング!!公開しろ!!!!
| | |◎□◎|. | <`Д´ >つ─◎
| | /´ ̄ ̄ ̄ ̄/⌒ヽ.| /´ ̄し' ̄し' \ ///.
 ̄ ̄| | | ̄ ̄ ̄| 、_人_ / 彡 ◎ ̄ ̄ ̄ ̄ ̄
| | | | _) ◎彡.| | バン
| | | | ´`Y´ .| | バン
t______t,,ノ t_______t,ノ
こう発作的にAA貼る奴って、一体どこの星から来たの?
elephant 0.22リリース
●2点
elephant 0.23リリース
ぞうさんってDIDEの後継なのか。
いきなり象がでてきてウイルスかと思ったのは内緒
Dev-C++でD言語が使いたい。
D言語が(Dev-C++で)何を使いたいんだ???
なぜDev-C++をチョイスするのかが不明。
あれだろ?D言語の開発環境として使うのだろ?
666 :
663:2005/06/07(火) 18:04:34
開発環境として使うんだ。
667 :
665:2005/06/07(火) 18:33:59
ヘッダとかそのままでDに使えたら俺も使うかもしれない。
俺ヘヴォすぎだからDは使う気になれん。
668 :
663:2005/06/07(火) 19:00:58
とりあえずコンソールアプリはDで作る気にはなるがWinアプリはCと一緒の書き方が出来ないときつい。
意味わかんね。
670 :
665:2005/06/08(水) 13:27:46
Cと一緒か知らんけど出来たはず。importするのです。
DMD 0.126リリース
連想配列周りの機能と、インナークラスがメインかな。
alias 実名 別名;
の書式に馴染めないんですが
alias 別名 実名;
ってしたほうが、感覚的にわかりやすくないですか?
別人だけど代入みたいなイメージなんじゃない?
alias A=B;
= は無いけど。
>675
smtpとかのaliasesでも
別名:実名だし
しっくりくるね
>>673 defineじゃなくて
typedefとして見れば
>>677 自分の知ってる他のソフト達でよく使われる'alias'と順序が違うから嫌ってことでしょ。
>>679 ああいいいいいーいーいーいーいーいーいー!!!!!!
要するに、出そうだ! ってことだろ
elephant 0.24リリース
interface.dをimport出来ない罠にハマった。
この仕様どうにかならんかな。
予約語だからダメという理由じゃないの?
いや、そりゃわかってるが…
elephant テーマソングリリース
くだらねーw
妄想。
alias import reservation hogehoge;
とか。
みんな疑り深いなぁ。
真実を目の当たりにしてワロタんじゃないのか。
キモい言語仕様に似合いのキモいスレだな
>>694 そしてそのキモいスレに書き込むキモいお前と俺。
Doaho
>>697 すまんす。わかりにくかったですね。
void xxxx(void) throws( XxxxException);
↑このメソッドが投げるthrows宣言のことです。
結構、調べましたが今のところ見つかりませんでした。
あとモジュールに属するクラスって一個のソースファイルに固めなくちゃならんのですかね。これちょっとキツスwwwww
>>699 一応、importしてaliasでシンボルをスコープに導入するという手段はある。
--mainmodule.d--
private import submodule;
alias submodule.Hogehoge Hogehoge; // submodule.Hogehogeをmainmoduleのスコープに導入
701 :
699:2005/06/16(木) 17:30:48
>>700 おおおお。できました。
モジュールのまとめファイルみたいな感じですね。
ありがとうございます。
質問です
0.126の
>Now throws an ArrayBoundsError if accessing an associative array with a key that is not already in the array.
>Previously, the key would be added to the array.
は
今まで、data = replace(data,"%a%",arry["a"]);
これで済んでたことを
こう記述しろってことですか?
if ("a" in arry){
data = replace(data,"%a%",arry["a"]);
}
else{
data = replace(data,"%a%","");
}
0.125までと同じ挙動にするつもりなら正確には
if(!("a" in arry)) arry["a"] = null;
data = replace(data,"%a%",arry["a"]);
だね。まあ、そういうことだろう。
>>704 改善なのか、改悪なのか
どっちなんだろう?
try {
arry["a"]をreadするような処理;
} catch {
だめぽ
}
めんどいからこれで済まします('A`)
元々の仕様は、存在しないキーを読んだときには、自動的にそのキーが作られるというもの。
int main() {
int[char[]] aa;
int i = aa["notfoundkey"];
if("notfoundkey" in aa) {
printf("Found 'notfoundkey' in aa\n");
} else {
printf("Not found 'notfoundkey' in aa\n");
}
return 0;
}
//出力
Found 'notfoundkey' in aa
これはこれで変なので、どちらにせよアクセスする前に存在チェックをしないとダメなんだろう。
それを強制するような仕様になったのかな。
ver0.126
・std.stream.stdin/out/err deprecated
・adding std.cstream.din/out/err
stdin.sizeは、使えていたのに
din.sizeは、エラーになります。
din.readBlockで取得するために、サイズを特定するには
どうしたいいでしょう?
elephant 0.25リリース
DMD 0.127リリース
ほぅほぅ
fixだけでござるか?
って事はもしかしてそろそろ1.0が来るのかな
elephant 0.26リリース
changelog
*Project node import paths are added to current project
*Project node files added to file lists
*Fixed Next / Prev error
*Fixed Elephant crash on parsing a non-existent file
news:d9721c$1avn$1@digitaldaemon.com
日本人をほめてると思ったら
news:d994lf$1mf$1@digitaldaemon.com
なんだかなー
言い訳:
Most Japanese programmers can read English but is not good at writing.
Because reading a lot of technological documents written in Engilsh is necessary for their work.
However, the necessity for writing English is less than it.
>>716 翻訳エンジンに数回通してみた。
日本人のプログラマのほとんどのイギリス人に書くのは、利益を読むことです。
Engilshに書かれた多くの技術文献を読むのが彼らの仕事に必要であるので。
しかしながら、それと英語を書くことへの必要性はそうです。 . それは以下の通り重要です。
数回通すなよ…
確かに苦手だなおい。文法間違ってるし。
Dとアセンブリの親和性って高い?
膳膳
やっぱCかな~
アプリ追加モジュールの機構をstd.loaderで作ったとして、
ロードした関数の先でSegmentation Faultになった時に安全にアプリ用エラー表示を
してからまた処理を再開できる方法ってないでしょうか。
特にLinuxを意識してますんでsignalまわりで強引に対応するしかないでしょうか。
質問です。
確か、char[char[]] sss;
sss["xxx"] = "yyy";
で前はいけたと思うんですが
0.127ではchar[][char[]] sss;
じゃないと駄目で・・・
もともとchar[][char[]]でしたっけ?
もうひとつ
これも、前は
struct zzz{
char[] s1;
int x;
}
zzz[char[]] xxx;
xxx.s1 = "aaa";
でいけたと思うんですが
0.127では駄目なんですが
これは、どうしたらいいんでしょう?
726 :
訂正:2005/06/23(木) 10:44:50
もうひとつ
これも、前は
struct zzz{
char[] s1;
int x;
}
zzz[char[]] xxx;
//xxx[].s1 = "aaa";
xxx["yyy"].s1 = "aaa"; //訂正
でいけたと思うんですが
0.127では駄目なんですが
これは、どうしたらいいんでしょう?
>>726 > xxx["yyy"].s1 = "aaa";
ArrayBoundsError
になるわけだね
730 :
729:2005/06/23(木) 16:33:30
ver 0.125で実行したらいけた
void main(){
struct zzz{
char[] s1;
int x;
}
zzz[char[]] xxx;
xxx["yyy"].s1 = "aaa";
printf(xxx["yyy"].s1);
}
>>727 偉い人
0.126以降では、どう記述すればいいのか教えて
お前はどんな型の変数に何を突っ込もうとしてんだ。
あとChange Log嫁
俺もわかんねwww
ずばりの答えプリーズ
>>724 "yyy"は文字列リテラルなので、charには直接代入できるはずもない。
>>726 xxx["yyy"].s1 = "aaa";
xxx["yyy"]が存在しないので、ArrayBoundsErrorになる。
zzz zzz1;
xxx["yyy"] = zzz;
とか。
734 :
732:2005/06/24(金) 01:02:04
>>733 > zzz zzz1;
> xxx["yyy"] = zzz;
> とか。
まじで、わからん
俺が、馬鹿だから?
printf(xxx["yyy"].s1);
でaaaと表示させるまでの
すべてを、書いてもらえませんか?
>>734 多分↓考え方としてはこんな感じだろう。
×
zzz[char[]] xxx;
xxx["yyy"].s1 = "aaa";
//↑まだ"yyy"はどれとも関連付けられていない。
//xxx["yyy"] is ワケワカメ な状態。
//つまりは ワケワカメ.si = "aaa"; だから怒られちゃう。
○
zzz[char[]] xxx;
zzz zzz1;
xxx["yyy"] = zzz1; //関連付け。演算子はオーバーロードされてるんだろう。
//以降 xxx["yyy"] is zzz1
xxx["yyy"].s1 = "aaa";
//これは zzz1.si = "aaa"; と同じ;
printf("%.*s\n", xxx["yyy"].s1);
//これは printf("%.*s\n", zzz1.s1); と同じ
連想配列に触れたのは今回が初なので(機会をくれた
>>724トンクス)
後学のためにも間違いがあったら愛の鞭ヨロ。
736 :
732:2005/06/24(金) 10:18:34
>>735 わかりません
> xxx["yyy"] = zzz1; //関連付け。演算子はオーバーロードされてるんだろう。
オーバーロードの部分も含めて
全部書いてください
そこまで、書かないとお前はわからんのか~!!って
ぐらいでお願いします
甘えすぎだろ
オーバーロードとかは関係ないだろ。
>>735の○の
コードで既に
>>730と同じ動作になってるんじゃない? ていうか、
>>736 いい加減自分でやれ。
すんませんでした
オーバーロードってところで、錯乱しました
錯乱て
>>735 xxx["yyy"] = zzz1; //関連付け。演算子はオーバーロードされてるんだろう。
普通に代入してるだけだが。
intにでも置き換えてみればすぐに解ると思うよ。
Dのくせに面倒だな
代入するときには、自動的にキーが作られてもいいと思うのだが?
import std.stdio, std.string;
struct test {
char[] s;
int i;
}
void main(char[][] args) {
// ↓OK
char[char[]] foo;
foo["test"] = 'f';
writefln(foo["test"]);
// ↓OK
test t;
t.s = "foo";
writefln(t.s);
// ↓Array Bounds Error
test[char[]] bar;
bar["test"].s = "foo";
writefln(bar["test"]);
}
構造体の連想配列は自動的にキー作ってくれないようだ。
バグ?
いや、ごめん、バグじゃないな。
はやとちりすまん。
バージョンアップして
面倒くさくなったから、バグでいい。
鞭打ってくれた方サンクスコ。錯乱した人スマソ。
keyを除去するのが xxx.remove("yyy"); だから
xxx["yyy"] = zzz1; は
暗黙的に zzz.attach("yyy", zzz1); みたいなのを呼んでるんだろうとお馬鹿な妄想してた。
考え方としては間違ってない気がするよ
>>743 A.
bar["test"] = t; // 連想配列barにキーを"test"として、構造体test型変数tをダウ乳
B.
bar["test2"].s = "foo"; // 連想配列barのキー"test2"の構造体のメンバsに文字列リテラルを代入
これって、明らかに全く違う処理でしょ?
>>749 > ダウ乳
typoにもほどがあるw
それはともかく、俺もメンバへの代入で構造体を暗黙に作るのは
ちょっと余計なお世話って気がするな
Dは構造体の初期化値が書けるから
暗黙でもいいじゃん、ってのもわかるんだけどね
>>749 だからバグじゃないと後で気づいたんだけどスマン
あんまり虐めないでくれ(つДT)
elephant 0.27リリース
changelog
*Fixed bugs listed on here
*Fixed remove File removing add-on projects
Eclipseでまともなプラグイン作ったほうがいいような気もする。
eclipseは重過ぎる。
gdi32.lib がないんですが、皆さんどこから取得しているのですか?
わしのは普通についてる
> 757
ありました。インストールmissだったのかな?
/* テスト */ と書いたコードをコンパイルすると
invalid UTF-8 sequence
とエラーを吐き出しますが、いつからこうなったのでしょう?
( v0.127利用 )
interface fooがあったとしてfoo[]やfoo[char[]]を戻り値に持つ
関数が作れないのは仕様?
あ、俺の勘違いかも…もうちょっと調べてくるスマソ。
あはは…戻り値忘れてただけだったorz
スレ汚しスマン
SourceForgeでDのプロジェクトが20件しかないのだが…
20件もあるのか。
DでRADはいつ可能になりますか?
770 :
768:2005/07/01(金) 23:56:03
ポトペタデベロッパにそんなの無理っす。
IDEってまだないの?
数レス前も読めないの?
>>772 elephantあるけどまだいろいろ不安定
いつもelephantのバージョンアップ報告してる香具師だけど、最近はakIDEに注目してる。
elephantは落ち杉、柔軟性無さ杉、設定が反映され無さ杉。
DLLもガベコレってのはいいのか悪いのかわからんね。
>設定が反映され無さ杉
あー、オレもそう思ったw
つかいやすいIDEはないんですね
akIDE、スクリーンショット見た感じ結構良さそうだね
そろそろバージョン1.0が出る予感がする。
正式リリースがされたらおまいらどういう活動する?
飽きるまで弄る。2日くらいは遊べるんじゃない?
Wiki仕事早っw
もうリンク集→統合開発環境が更新されてる。
char[] str;
str~'a';
で Internal error
>>785 InternalErrorはアレだが、エラーでいいんじゃねーの?
>>786 ちゃんとエラーメッセージ出せ。って話じゃないのか?
D言語はC言語よりだいたい1.2倍ほど処理に時間がかかるみたいですね。
それはコンパイラの問題じゃないか?
それともコンパイラも「プログラミング言語」に内包されるの?
コンパイラも関係するが言語の仕様によるところが大きい
高級アセンブラと次世代高級言語を速度で比べるのが間違い
今時たいした差にならない
C++やC#、JavaがCと比べて何倍遅いか、のデータが無いと
何もいえないと思うんだが星屑ロンリネス。
793 :
788:2005/07/05(火) 06:44:23
Cよりは遅いけどC++やDelphiくらいの速度があるみたいなんで十分ではないかと。
Cにはない機能やクラスを使っておいて
「遅い」ってほざくのはプログラマとしてどうなのかね
>>794 >Cよりは遅いけどC++やDelphiくらい
推して知るべし
あのさー、配列のslicingの範囲が、終端を含まないのは紛らわしくねえ?
[0..4]で、0から3になるのは怖いんだけど
俺がruby廚だからか?
ruby廚じゃない漏れもハゲドー
ary[0..10] だったら↓に展開するような考え方なのかな。
for (int i = 0; i < 10; i++) ary[i] = ...;
そうだよ。というか、こいつの主眼は、
array[0..array.length]
とできることにある。
成る程…そこまで頭が回らんかったorz
ひとつ勉強になりますた。
800
array[0..$]の省略記法はどうかと思ったけどな。
array[0..length]で止まらなかったのはなんでだろう。
例の「Dは現実的な言語です」ってところに帰着するんかな?
>>798 それやりたいときって、
array2 = array[];
でいくね?
あー、すまん
array[2..array.length]やりたいときもあるよな
うーん、Pascal厨な俺は、array.length-1に何のためらいもないのだが……。
テキストエディタでカーソルは文字上にあるべきか、文字の間にあるべきか
イテレーターは文字を指すべきか、文字の間を指すべきか
そういう話と同じで、結論は出ないと思う、どちらも一長一短だし
>>805 俺はまったくキモク感じん。
現行の仕様の s[i..i+0] と書けば空配列を表現することになるのが便利だし自然と思う。
もし、 s[i..i] が一要素の部分配列になるのなら、部分配列が空のときを表現できない。
部分配列が空のときと空でないときで処理を分けることになるのは俺は嫌だ。
まぁ、この辺は個人の主義的な問題で正解は無いんだろうなぁ。
マニュアルに関しては、他にも配列の初期化とか違ってたこともあったし
もしかしたら仕様に変更があって修正し忘れているだけかもしれん。
まあ、だれかが言わなきゃ直されんものだけどね。
Dでコンソールから文字列を受け取りたいんだけど何使ったらいいの?
>>808 std.cstreamとか
関係ないがstd.cstream.dinってのは、ひょっとしてC++のcinのD版とか言う意味があるんだろうか、、、
cinってコンソールインプットの略だよな?
ひょっとしてギャグで(ry
char input stream だと思ってた。
cerrはなんだと思っているんだろう。
CFile cfile = new CFile(std.c.stdio.stdin,FileMode.In);
printf("%c\n", cfile.getc());
こんな感じで一文字受け取り出来た。
std.cstream.CFile.readBlock(void, size_t)は確保した配列に確保した分入らないと駄目なのか…
でもwhileと配列のサイズを1にしたらいける模様。なんだかシェルのようなものが作れそうな予感。
なんか何時の間にか、
-profileオプションつけても気になるほど重くならなくなってるな。
DMD 0.128リリース
ライブラリの修正
バグフィックス
zlibのbuffer overflowの修正
バグフィックス続く限りコンパイラは1.0にならんのかね…
配列への演算とか実装されてないやつもあるし、ver1はまだ先だと思われ。
versionなんて飾りですよ、エロイ人にはそれがわからんのです
D言語って構造体の内容比較出来るって言うじゃない?
でも
ポインタ型のメンバーの指す別々のアドレスの先の内容が同一なのか、メンバーの指すアドレス自体が同一なのか、
そのどちらでもokなのか、気になるんですよ。まあ、後者は当然として、前者が成り立たないと役に立たない。
中身を比較したいなら構造体のopEqualsとopCmpオーバーロードすれば?
すっごい初歩的なことかもしれんが…
正規表現で{とか[とか]を使いたいんだが、うまくコンパイルが通らないorz
これじゃだめなのか?
reg = new RegExp("\[+[^\]+\]","");
誰か助けて…
reg = new RegExp(`\[+[^\]+\]`,"");
>>822 構造体の比較はビット比較のはず。ただし、パディングは考慮される。
ちょっと仕様見てて躓いた
総称プログラミングの部分・明示特殊化 ってどういうことを言うの?
ジェネリックに慣れてないもんでよくわからん。
>>827 あ、やっぱし・・・
完全一致の仕様かぁ。だと、ポインタのアドレスが違うとダメなんだね。別々のアドレスの先に同じコピーがあっても。
変なの。 もともと別オブジェクト同士を比較してるんだから、ポインタのアドレスが一致するわけないのに(w
830 :
828:2005/07/14(木) 19:13:30
831 :
828:2005/07/14(木) 19:34:54
すまん。やっぱわかってなかった。googleったら余計わかんなくなった。
template TFoo(T, U) {}
template TFoo(T, U: char) { }
みたいに、一部だけ型を限定したりすることでいいのか?
830のWEB見てみたけれど、あれ以上簡単に説明するの難しいぞ。
Dならこれじゃない?
template TFoo(T : T*) { }
alias TFoo!(char*) Foo3;// (2) T は char と推論される
勘違いだったらすまんけど、Dって構造体の一括初期化(っていうのか?)
できないよね?
RECT rect = {0, 0, 100, 100};
↑こんなやつ
>>833 C方式の、 メンバの順序に基づいた初期化もサポートされています:
static X q = { 1, 2 }; // q.a = 1, q.b = 2, q.c = 0, q.d = 7
staticで困らん気がする
ちゃんと名前をつけろって事なのかねえ
with文の範囲内で他の関数呼んでも、with文の効果が残ったままなのは仕様なの?
class Hoge{
void foo(Hoge hoge){
}
}
スマン、間違えたorz
class Hoge{
int n;
void foo(Hoge hoge){
with(hoge){
tekitou();
}
}
void tekitou(){
printf("%d\n"n);
}
}
とかやると、自分のnじゃ無くて、hogeの方のnが帰ってくる。
しかも、今試したら。
printf("%d\n",this.n);
にしてもhogeの方のnの値が帰ってきた。こりゃバグかな。
ゴメン、マジで馬鹿だった。
hogeの方のtekitou()が呼ばれるんだからおかしくも何とも無いなorz
スレ汚しスマソ。
Text{
あいうえお
かきくけこ
}
Text1{
さしすせそ
たちつてと
}
って書いてある文字列から
あいうえお かきくけこ と さしすせそ たちつてと を取り出したいんだが
どうすればいいんだろう?
>>845 Open-RJ見たけどやりたいことと違う…
正規表現で組むしかないのかなあ…
なんやねんそのあの手この手尽くしてダメだったときの最終手段が正規表現みたいな言い回し。
正規表現で解決する手段を知ってるのに今まで惜しんで来たのか?
この程度のことで質問してるんだから、正規表現も上手く扱えないって事だろ。
自力で解決してもらった方がいいと思われ。
int main()
{
assert("あいうえお かきくけこ と さしすせそ たちつてと"
== extract(
"Text{
あいうえお
かきくけこ
}
Text1{
さしすせそ
たちつてと
}
"
));
return 0;
}
char[] extract(char[] a)
{
return "誰か実装しといて";
}
Text{
あいうえお
かきくけこ
}
Text1{
さしすせそ
たちつてと
}
この表現が俺にはわからなかった。
単純にこのままテキストで書いてあるのか、それとも
char[] text1 = "あいうえお\nかきくけこ";
なのか。
みんなよく質問の意図がわかるよな。
そもそも「あいうえお~」の部分が「あいうえお~」だと決まっているのか
実際には任意の文字列なのか明示してない点もアレだ
char[] extract(char[] a)
{
//return "誰か実装しといて";
return "あいうえお かきくけこ と さしすせそ たちつてと";
}
c:\...\Desktop\a.d:
class X {}
c:\...\Desktop\b.d:
import a;
void main()
{
X x = new X();
}
みたいに書いて
dmd b.d
するとOPTLINKが
a.obj(a)
Error 42: Symbol Undefined __Class_1b1X
とか言いだしてリンクできないんだけど
どこがおかしいのか誰か教えてくれょ(つω・`)
a.objとa.defと壊れたa.exeはできてるっぽい
WinXP SP2でdmdのバージョンは0.128でつ
854 :
デフォルトの名無しさん:2005/07/18(月) 14:01:24
× dmd b.d
○ dmd b.d a.d
または
dmd -c a.d
dmd b.d a.obj
みんなどんなエディタで開発してますか?
xyzzyのD-modeなのだが、どうもいまいち感が強くて・・・
857 :
844:2005/07/18(月) 18:03:47
自己解決しました。マジでスレ汚しすいませんm(_ _)m
自己解決したら解決策書こうぜ。
後のひとの参考になる
s = Text = { "あいうえお", "かきくけこ"};
じゃダメなのか。
よくわからん。
860 :
844:2005/07/18(月) 22:24:59
>>858 すっかり忘れてた…
わかりにくいっていう人もいるんで、やりたかったことをいうと
任意のテンプレートネーム{任意のテンプレートの中身}
と書いてあるテキストファイルから
任意のテンプレートネームと任意のテンプレートの中身を取り出して
char[] tempname[]とchar[] tempparts[]にどんどん入れていきたかった
というかなんというか…(説明へたくそだな俺orz)
っでひとまずできたのが以下のプログラム(まだ未完成)
本当はchar[] tempname[]とかしたかったんだけど
動的配列への追加がなぜかうまくいかないので単なる文字列に「,」を追加して
区切るようにして誤魔化してる…orz
861 :
844:2005/07/18(月) 22:28:39
プログラム言ったけどクラスだけ…orz
import std.regexp;
import std.string;
import std.stream;
private import std.stdio, std.process;
class ChtmlConverter{
//もうすべてnewで処理してしまえ~!
this(char[] Filename,char[]Tempname){
char str[] = cast(char[])read(Tempname);// ファイル読み込み
RegExp reg = new RegExp(`\w+\{+[^\}]*\}`,"g");
//Tempへ
char[] temp[] = reg.match(str);//見つかったのを一時文字列(?)に
char[] tempname;//テンプレートネームをおく
char[] tempparts;//テンプレートの中身
char[] k[];
foreach ( int i,char[] c ; temp )
{
reg = new RegExp(`\w+\{`,"");
k = reg.match(c);
foreach ( int f,char[] a ; k )
{
tempname = tempname ~ replace(a,"{","") ~ ",";
}
reg = new RegExp(`\{+[^\}]*\}`,"");
k = reg.match(c);
foreach ( int f,char[] a ; k )
{
tempparts = tempparts ~ replace(replace(a,"{",""),"}","") ~ ",";
}
}
}
}
const char[] TEXT = "Text{
あいうえお
かきくけこ
}
Text1{
さしすせそ
たちつてと
}
";
const char[] RESULT0 = "あいうえお
かきくけこ";
const char[] RESULT1 = "さしすせそ
たちつてと
";
assert(2 == extractHeader(TEXT).length);
assert("Text" == extractHeader(TEXT)[0]);
assert("Text1" == extractHeader(TEXT)[1]);
assert(2 == extractInnerString(TEXT).length);
assert(RESULT0 == extractInnerString(TEXT)[0]);
assert(RESULT1 == extractInnerString(TEXT)[1]);
ということだね
>>856 VS又はxyzzy
emacs配列はマウスとクリップボードを考慮してないので自前ゲイツバインドに修正
xyzzy+D-mode
普通にクリップボード使えるけど不満か?
xyzzy+D-modeなんだけど、
インデントがちょっと不満。
下の例だと関数ない関数だけど、クラスのメソッド書くときとかも同じようになるので
int main()
{ ←ここは正しい
void hoge()
{ ←ここが変
moge;
まあ、
int main()
{
void hoge(){
moge;
と書いてもいいだけど差
自分もD-mode使ってるんだけど。
関数一覧でcast(hoge)が引っかかってるのが嫌だなぁ、と思う。
867 :
788:2005/07/19(火) 15:26:25
count[] = {1, 1, 1, 1, 0};
と書くと
variable count is not a static and cannot have static initializer
って怒られるんですけどどうなってんの?
右手にマウス、左手にキーボードだと、c-insert, s-insertよりもc-c, c-vの方が使いやすいし
emacs配列の為に左利きになる気はないし
ゲイツは嫌いでも、キー配置はゲイツの方が合理的に思う
そもそもクリップボード使っている段階で軍門に落ちている。
>>867 static count[] = {1, 1, 1, 1, 0};
じゃね?
ごめん
static bit[] count = {1, 1, 1, 1, 0};
>>870 正しくは
static bit[]count = [1,1,1,1,0];
C++と配列の初期化の仕方が違うからよく間違える。
873 :
867:2005/07/19(火) 20:55:57
どれを試してもダメだった。
static ubyte count[] = {1, 1, 1, 1, 0};
static ubyte count[5] = {1, 1, 1, 1, 0};
static ubyte[] count = {1, 1, 1, 1, 0};
static ubyte[5] count = {1, 1, 1, 1, 0};
static ubyte[]count = {1, 1, 1, 1, 0};
エラーメッセージはこんなかんじ
Error: a struct is not a valid initializer for a ubyte[]
エラーメッセージもちゃんと読め
877 :
867:2005/07/19(火) 21:04:28
すまんかった。
(*^ー゚)b ドンマイ!!
もしも配列を定数以外でも初期化したいときはこんな感じのテンプレートがあると幸せかも
template makeArray(T){T[]makeArray(T[]a...){return a.dup;}}
例)
int[]a=makeArray!(int)(4,5,6);
ていうか定数以外の配列の初期化も許して欲しい......
static int[] init = [1,2,3];
int[] a = init;
定数以外って書いてあるじゃん。文章よんでないなあ。スマン
今回の話ってさ、int[] a=[1,2,3]; をコンパイラが
>>880にするかどうかだけでしょ。
作者がそれをやらないってのは経験からの判断だと思うし、
テンプレートとかで回避するのは美しくないし、
どうしても気に入らないなら、作者を説得した方が良いと思うんだよね。
int[5] foo = [1,2,3,4,5];
がダメな理由はあるの?
推測だけどコンパイル時に静的に決定できないからと思う(スタック上への配列の確保と配列への代入が実行時に必要)。
D言語って静的に決定できないものは、
結構ユーザーが明示的に書くことを求めるのが多いし(static this()とか)
>>883 指摘thx
俺も憶測だけど、
int[] a = [1,2,3];
int[] b = [1,2,3];
みたいなのを書くのを防ぎたいとか。
こんなんコンパイラで最適化したくないし、お前らがやれと。
887 :
デフォルトの名無しさん:2005/07/20(水) 00:38:18
888 :
887:2005/07/20(水) 00:40:25
ちなみに、GCC 3.3系でも同じエラーですた。
printfで複素数型や虚数型の値を出力するとき%何になるの?
ireal a = 1 + 2i;
printf("%?", a);
?を埋めて
あ、crealのまちがいだ。
>>890 俺は素直に
creal c = 1 + 2i;
printf("%Lg + %Lgi",c.re,c.im);
とか書いてる。
const int[] a =[0,0,0,0] って
aが動的配列扱いになるみたいだけど
勝手にconst int[4]に変換してくれた方がいい気がするんだが。
なんかできない理由ってある?
>>893 その辺が、将来計画されている配列リテラルとの絡みで未策定な部分なんだろう。
現状では、4要素とわかってるなら、明示しろって仕様だね。
まあ、別に動的配列でも構わないちゃ構わないけど。
動作が固定配列と違うのはstatic ifやstatic assertが使えなかったり
sizeofで参照のサイズが返ってくることくらい?
const int[]は、iintの定数の動的配列だから、それはそれでいいのでは。
つまり、Cなどの省略記法とは別物ってこった。
akIDE 0.295が出てるね。
901 :
887:2005/07/21(木) 03:02:47
>895
そのMakeFileでも実は失敗した。Phobosがどうこうで同じエラー。
バイナリあるのね!ありが㌧。
D言語ってローカル変数や構造体は、宣言時に初期化されるとみていいのですか?
見たところ初期化されてるようですが。
soudesu
908 :
902:2005/07/22(金) 19:53:01
>>905に書いてありますね。
> もし Initializer が指定されていなければ、
> その型のデフォルト初期値で初期化されます。
サンクソ!!
javaでいうところのgetStackTrace()な方法ってないんでしょうか。
dmd1.0マダー?
テキストファイルを一行づつ読み込みたくて以下のプログラムを作ったんだが
int main(char[][] args){
char[] str = cast(char[])read("test.txt");// ファイル読み込み
char[] filestr[] = std.string.split(str,"\n");
char[] outputfile;//出力用
foreach (int i,char[] linetext; filestr)
{
outputfile = outputfile ~ replace(linetext,"\n","");
}
std.file.write("out.txt",outputfile);
return 1;
}
これでout.txtには改行のない文章になると思ったんだが何故かout.txtに改行が含まれてしまう。(っていうか元のファイルと同じ)
これってバグかな?
ちなみにテキストファイルの文字コードはUTF-8
ファイルの改行コードを\r\nにしていて\nだけ消して改行が消えないよー。
ってのが原因と見た。
std.string.splitの代わりにstd.string.splitlinesを使うといいと思うよ。
あと、outputfile ~ replace(linetext,"\n","")ってのはしなくても良い。
悪影響はないけどまったく無駄。
outputfile ~ linetextで良い
DMD0.121にアップデートした後に
DMD0.117を使っていたときのソースをコンパイルすると
リンク時にエラーがでるようになりました。
Error 42: Symbol Undefined __d_arraysetbit2
関数にもarraysetbitなんて名前は使ってないのでエラー内容がさっぱり
わからないのですが、どなたか詳細をご存じないでしょうか。
phobos.libとリンク汁
916 :
914:2005/07/24(日) 21:08:18
>>915 してますよ~
と思いましたがphobos.libをアップデートしたらできました・・
リンカのほうのlibは更新してくれないのか・・・
ありがとうございます。
コーディング規約に無いようなのでちょっと聞きたいのですが、
みなさんは、publicとprivateどちらを上にして書いてますか?
ヘッダーと実装部が分かれた言語環境だと、
private, protected, publicの順に書いていたのですが、
Dみたいに、宣言部と実装部が一緒の言語だと、
1ファイルに長くずらずら書くことになります。
そんわけで、上をpublicにしたくなるのですが、みなさんはどうですか?
Dは識別子を前に書かなくてはいけないとか、制限が無いし、
言語使用的には上でも下でもいいのかもしれませんが、
決められてないと迷うものですよね。
http://www.kmonos.net/alang/d/ なんかのコード例みると、下にprivateを書くようですが、
そうすると、一番下にフィールドメンバが溜まってちょっと不自然感もあります。
そんなわけで、みなさんの意見を聞いてみたく思いました。
慣れの問題で今は上
ライブラリとして利用する側の観点から言うと、public→privateの順が好み。
とりあえず検索して、上だけ見れば事足りる。
フィールドは常に上にあつめる
メソッドはpublic、、privateの順
これってJavaでも他の言語でも結構標準的だと思う
publicは一番上、あとは自分が見やすいように適当に配置。
クラスのバイトサイズがどうにも気になる貧乏性なので、private変数が一番上。
>>923 privateって小さくなるの?
詳しくしりたいかも
>>918 全メソッド・フィールドの前に修飾して
スコープではなく論理的な順番・グルーピングで書く。
926 :
918:2005/07/26(火) 17:05:55
実に千差万別ですね。
いろいろな意見を聞けてよかったです。
みなさんの意見を参考にして決めようと思います。
>>924 どのくらいメモリを食うか、一目でわかるからかと
int[8] a;
int i;
i = 0;
a[0..a.length] = i++;
これでa[0]~a[7]が全部0になるのは変だと思う
どうしてそう思う?
>>927 a[0] = 0;
a[1] = 1;
・・・
a[7] = 7;
//(i == 8)
てこと?
i++でなく++iだったら?
イヤーン
>>927 全部に代入した後にインクリメントするんだからおかしくも何とも無いとおもうが。
>>927はBASICのMAT文でハマりそうなタイプだな。
Elephantって標準では(build.exeでは)コンパイルオプションに-gがつけられないのか?
>>927 a[0..a.length] = i++;
が
for(int i=0; i<a.length;){
a[i] = i++;
}
になると思うのは間違い。
int tmp = i++;
for(int i=0; i<a.length;){
a[i] = tmp;
}
どちらかといえばこっち。
Child
{
this()
{
(i)C=3
}
}
その間わずか15分
ヒント:相対性理論
>>933 どっちかと言うとこうだろ?
for(int j=0; j<a.length;j++)
a[j] = i;
i++;
っていうか、思いっきり無限ループしてるじゃないか。
>>938 jはiと見間違えるからkとか使ってくれよ。
というかj使うヤツ久しぶりに見た。
ハァ?jぐらい普通に使うわ。
どんなフォントだ
>>939みたいに言う香具師はさすがに初めて見たなw
MS Pゴシックとか使ってるとアレだけどな。
プログラマなら、0に斜線の入ったフォント使ってるだろ、という意見もあるが。
Bitstream Vera使っとけ
944 :
927:2005/07/28(木) 00:45:55
いや、これが仕様だっていうなら納得するんだけど
本家の定義では
In general, (a[n..m] op e) is defined as:
for (i = n; i < m; i++)
a[i] op e;
ということらしいから、
>>927の結果は
a[0] = 0
a[1] = 1
:
a[7] = 7
となるのが筋だと思うのよ
eが複数回評価されるのか、最初に1回だけ評価されるのかについては記述がないし
記述がないなら筋もへったくれもないだろ
右辺値の評価が終わり、左辺値の評価が終わり、インクリメント
って
オペレータの優先順位の話だから
代入の定義と関係ないんでないかな。
「一般に」であって「絶対に」なわけじゃないし
948 :
927:2005/07/28(木) 01:46:15
だからって右辺に左辺と同じ長さ・型の配列があったら右辺を毎回評価、
数値だけなら最初の1回だけ評価というのは不自然じゃないですかそうですか。
とか書こうとしたけどよく見たらこのあたりはまだ実装してないのね。
今後どうにかなってしまうことを期待します。
>>948 一つ聞きたいけど、右辺が左辺と同じ長さ・型の配列なら毎回評価すると判断してる理由は何?
右辺が配列でも評価は一度しかしていないと思うけど。
int[]f(){printf("a\n");return new int[2];}
void main(){int[2]s;s[] = f();}
こういうコードを書いても一度しか表示しないし
変に展開された形を想像するから毎回評価されるとか思うんだ。
見た目通り、式は1つなんだから評価後に1回インクリメントでいいじゃないか。
毎回評価させたければforなりで明示的にそう書けばいい。
951 :
927:2005/07/28(木) 09:54:30
公式で挙げられてる例だと
b[] = a[] + 3;
というのが
for (i=0; i<a.length; i++)
b[i] = a[i] + 3;
と「同等」なのであれば、これは右辺を毎回評価してることになりなせんか?
ってこの例、今のdmdではコンパイルできないんだけど。
あとforで明示的に書けばいいというのなら、配列のスライシング等を言語機能にする
意義がなくなると思う。
問題なのはインクリメントがどうこうじゃなくて、クラスオブジェクトの配列を作りたいときに
SomeClass[8] a;
a[] = new SomeClass();
と書いたとき、実際にはインスタンスは一つしか作成してなくて
配列の要素は全部同じオブジェクトを指してるというのが感覚的に納得いかないのんです。
いたずらにfor文を書くより、最初から複数回評価される実装のほうが有益じゃないですか?
一回だけ評価させたいんであれば
SomeClass[8] a;
SomeClass t;
t = new SomeClass();
a[] = t;
と書けばいいわけだし
変則的な式評価をするのは&& || , ?: だけでいいじゃん。
これ以上増やされると気持ち悪くてかなわん。
俺は右辺を複数回評価をするとか変な仕様になるよりも、
自分でfor文でも書くほうが明示的で分かりやすいと思う。
>>944 > 配列へのデータセット
> 代入式の左辺にスライス、 右辺に要素型と同じ型の値が来ると、 左辺の配列の内容が全て 右辺の値にセットされます。
>
> int[3] s;
> int* p;
>
> s[] = 3;// s[0] = 3, s[1] = 3, s[2] = 3 と同じ意味
> p[0..2] = 3;// p[0] = 3, p[1] = 3 と同じ意味
配列へのデータセットについては rvalue について書かれているが、
「一般には」 a[] = e とあるように右辺は expression として扱われるということだと思う。
a[1..3] = b[4..7] は配列要素のコピーだし、ごっちゃごちゃだね。
>>952 それがそーいう機能じゃないのは結局そーいう機能がないのが悪いんだろ。
foreach(3){
arrayA[#] = arrayB[$-#-1];
}
か
array.foreach = { new Hoge };
ってのを今から仕様に追加しよーぜ。
よう分からんけど
foreach(inout Hoge h;array)
h = new Hoge;
で十分と思うけどなぁ。
>>955 foreach(inout Hoge h;array)
が長いのと、arrayの要素に対して操作しているということが
Hoge h のせいで直感的じゃないのが嫌な感じ。
927キモイ。あとセンスがない。
俺はそうは思わなかったけどな。
a[10..20] = new Hoge;
とかはスライシングで出来た方が良くないか?
いろんな書き方が
出来るようになるのは、いいんじゃないの?
俺は、perl厨なので
for (1..3){$_}
for(arry){$_}系が
出来ると楽でいいんだけどな
927が責任をもってリクエストしておいてね
一つの式の右辺値が複数回評価されるなんて、気色悪すぎなんだが、
そう思わない人もいるんだな、と思った。
複数回評価する場合はこうするのはどうだろうか
a[10..20] = {new Hoge;};
…とかD学び始めたばかりの漏れが言ってみる
そりゃ気持ち悪いけど、気持ち悪いってだけで判断しちゃだめだろ。
慣れれば普通かもしれないしな。
Rubyならそこらへんの問題はとっくに解決してるのにね。
後発のくせにDって運子だね。
akIDE 0.296が出てるね。
>>964 evalのあるインタプリタと一緒にすんな
・・・と言いたいが便利そうだな、複数評価構文
しかし#defineと同様の欠点を引きずるのはどうかと。<複数評価構文
a[10..20] = new Hoge[10];
みたいなのはどうだろう
文脈によってnew Type[n]の意味が変わるのは...
New!(Type).array(n)とかrange(n)みたいな
配列生成関数を作って使うのはだめなの?
字面はいまいちだけど。
なんかもう収拾つかなそうだねこの言語は。
大切なのはバランス感覚なんだよ。
>>971 収拾つかないのは、おれら
つくってる人はしっかりしていると思う
そのうち導入する予定の配列リテラルに期待しよう。
974 :
デフォルトの名無しさん:2005/07/30(土) 19:28:43
結論:JavaかC++でOK。
>>974=976
m9(^д^)プギャーッ
空気嫁ねー奴はすっこんでろ
公式の項future
> 3. Array literal expressions.
どんなものかは知らない。
一般的な a[] op e; のことでしょ。多分。
>>980 Newsgroupsの提案記事で読んだ記憶があるのは、例えば、
a[] = [1,2,3,4]とか、b[3..6]=[i,j,k]とかそんな感じのものだった。