1 :
D1はオワコン :
2012/02/20(月) 14:05:31.03
URL 多すぎるのか規制がうるさい 古い奴はばっさり消毒だーーーーー
hぬきで ttpにすればいいのに
6 :
デフォルトの名無しさん :2012/02/23(木) 01:40:10.27
7 :
デフォルトの名無しさん :2012/02/23(木) 10:26:41.49
import std.stdio;void main(){ writefln();}これコンパイルすると出てくるエラーってどうしてライブラリ側でのエラーの位置なの?
8 :
デフォルトの名無しさん :2012/02/23(木) 10:27:10.97
import std.stdio;void main(){ writefln();}これコンパイルすると出てくるエラーってどうしてライブラリ側でのエラーの位置なの?
テンプレートの中で出るエラーだから test.d(1): instantiated from here: writefln!() これが出てる分だけマシな方だと思う
import std.stdio; enum HELLO = () => std.stdio.writeln("hello"); enum main = () => HELLO(); もう少しでこれが通りそうなんだが
JavaScriptみたいに、普通の関数宣言の構文がいらない子になってきてるな……。
enumとかisとか何だよ ってたまに突っ込みたくなる
forkるんだ
16 :
sage :2012/02/24(金) 08:43:23.04
>>9 そうなんですか。ライブラリ側のエラーの行数が出てきてもデバッグし難いですね
日本人夫婦から治療費5千万円詐取容疑 韓国人の女逮捕
韓国のソウル地方警察庁は23日、知人の日本人夫婦にソウルの病院を紹介し、実際の数倍の
治療費を夫婦に請求して約7億ウォン(約5千万円)をだまし取ったとして、韓国人の女(36)を詐欺などの疑いで逮捕したと発表した。
同庁によると、女は宮崎県でネールアート店を経営。知り合った老夫婦に「待たずに手術を受けられる」などとソウルの病院を勧め、
昨年5月までの約1年間、病院の領収書を偽造して夫婦に請求し、差額をだまし取った疑いがある。
警察によると、女は容疑を認めているといい、ほかに被害にあった日本人がいないか調べている。
http://www.asahi.com/international/update/0223/TKY201202230625.html
複数行のラムダ式が折り畳み出来ないエディタなんて 小学生までだよね〜☆
class A { static enum createInstance = () => new A(); private this() { assert(false); } } void main() { auto a = A.createInstance(); } ラムダで Singleton をやろうとしたら コンストラクタが呼ばれないでござる
enumにそんな使い方あったのか
static enum createInstance = (){ return new A(); }; 2.057 ではこの形をはじいている。緩和された? それともバグ?
前はそれだと問答無用でdelegate(=コンパイル時値ではない)になる 今は関数部の中身によってfunctionかdelegateか判別してくれるんじゃなかったかな
なるほど こんな効果もあるのか
そういえばアイマスのキャラが 'Der変態' って言ってた
いっつも構造体ポインタから当たり前のようにドットつなぎでメソッド呼び出してて その構造体にopIndex定義して、 当たり前のようにポインタにp[i]みたいにやったらポインタ演算に間違われた
あれ?TLS前見たときにはDあったような・・・気のせいか
D2+Win32APIの勉強してたつもりが github.com/kos-/MultiWS DLLの共有セクションってdmdでどうやるのでしょう
>>31 1. opApplyをconstメンバ関数にする
2. Barのコンストラクタで foo = new Foo;とかする
opApplyの実装しだいでforeach文自体が副作用を伴う場合もあるということか なんかこえー
35 :
31 :2012/03/01(木) 21:40:58.27
自分のクラスならconst付けるだけていいんだけどphobosはそうもいかないよね -Foo foo; +Stream foo;
むしろStream系はメンテすらされてないんじゃ・・・
代わりに何を使えばいいんですか?
std.regex.match("", r"^$").empty == true になるんだけど、なんで? Rubyだと "" =~ /^$/ でヒットするのに
nothrow宣言ってなにが得するんですか? いまいちわからないんですが・・
Javaばりに投げる例外がメソッドの型として影響すれば意味があるけど、 現状ただの目安だな。
>>38 goto バグ報告
>>39 TDPL によると絶対に例外を投げてはいけない処理の中で
安心してその関数を呼べることの保証
契約プログラミングの位置づけに見える
なるほど契約ですか。 普段からあんまり契約文書いてなかったから分からなかったなあ
配列の先頭を削除する時 a = a[1..$]; してるんだけどもっと綺麗なやり方あるます?
import std.array;して a.popFront;とか? いややってることは、まったく変わらないんだけど
>>44 dd
中見たらやってることが変わらないどころか配列名も含めて完全に一致してて吹いた
リングバッファでも実装したら
a[0 .. $-1] = a[1..$]; a.length -= 1; とか?
いやいや読みにくいやん読みにくくなってるやん
別に予言でも何でもないような気が・・・ C# 3.0 (2007年) のラムダ式が欲しいっていう 普通のレスじゃないの?
与言じゃなくて欲言
急にボタンがきかなくなる現象ってなんだろう。 たくさんボタンがあって、ムービークリップもあって きかなくなる。 マウスはヒドゥンにして、ムービークリップオブジェクトを カスタムマウスよろしくポインタをフォローミーさせとる なんかシンボルを作り直すと直ったりするんだけど 本当に意味不明だよ。アクションスクリプトを何度もみかえしてみても 全然変じゃないしコンパイルも通る。へんな出力もされない。 ステージによみこむときのジェイペグやジフファイルの ファイル名が全角だったりするとバグるのだろうか? この現象と対処方法、解決方法を上手く説明できる人おる?
急 た き マ カ な 本 全 ス フ こ
flashはスレ違いだよ!w
>>54 フラッシュのスレに誰も答えれるやついないんだよ
素人ばかりなんだ。
こまってしまったよ。
ここで聞かれても
最近delegateの最適化がめちゃくちゃ効いてきて参照渡しスタイルがかなり書きやすくなってうれしいな
間違えた。参照渡しじゃなくて継続渡しね
>>55 せめて、web制作系のスレに行こうよ・・・w
>>55 flvファイルは持ってる?
推測だけど、Flash Player上でのループ処理がマウスの動きに追いつけなくて
カーソル関連の処理が飛んでしまうんじゃないかと思う
間違いなくファイル名の問題ではないと思うよ
ムービークリップをカーソルの位置に移動するのはかなり負荷が掛かってたみたいだから
ここに来た目的を忘れてたw Windows版dmdの64bit対応って今どんな状況? 早く来ないかなとワクテカしてるんだけど 情報源がそんなにあるわけじゃないから ここに頼るしかないんだw
>>59 >>60 ソースをいじったり、ファイル名、インスタンス名を変えたり
ありとあらゆる方法を試して原因がわかった。
ムービークリップを構成している画像ファイルを作り直したら直った。
他の画像ファイルに置き換えたら正しく動いたから判明した。
でも別に画像ファイルが壊れてるわけではない。
その画像ファイルを同じ手順で同じRGBカラーで
同じ手順でイラストレーターで再作成するとバグる。
どうも#00ff00(緑色)を使うとバグるきがする。
これセーフカラーだよね。なんなんだよくそが!
他の色の画像ファイルなら大丈夫なんだ。
これははっきりいって
Flash CS5のバグ何じゃねえかと思う。
だって、俺のアクションスクリプト3.0のソースは
何百回みなおしても正常だったし
Flaghはスパゲッティみたいな作りらしいからね バグも色々とありそうだ ライセンスが有効なうちにバグ報告しとくといいよ 間違ってウォルターに報告したら駄目だぞ
64 :
デフォルトの名無しさん :2012/03/08(木) 03:52:35.63
>>61 リンカが全くといっていいほど進んでないので後何年かかるのやら
GDCのmingw64版もreal計算がコケるし自分で作った方が早い
あらら…やっぱりというか何というか 自分で作れる程の技量はないしw dmdのWindows版が64bit対応したら歓喜しちゃう所なのに 道のりはまだまだ遠いのね…残念 ありがとう
UFCS きた こんなのが書けるようになるぞ! "aaa".map!(a=>'b')().map!(a=>'c')().array() // "ccc"
きゅうべぇ「もう訳がわからないよ」
変態!変態!(AAry
同じようなことはunaryFunで結構前からできてたからあんまり実感ないな
alias TypeTuple!() void;
最後のarrayいるの?
if (ch.inPattern("0-9A-F")) {
}
こういうのが書けるようになるのはほんのり気持ちいい
>>71 array() なしでは生きていけない
関数型言語のゴチャゴチャスレが2つほど立ってるが 取り合えずpureがあるDが勝ち組
>ch.inPattern 「chinpoたん」に見えた。新キャラかと思った・・・
ch.インポたん?
lispのsexpが羨ましい今日この頃
VisualD 0.3.31
>>77 GDCと64bit サポートか・・・人によってはうれしいかも
mago debugger の機能強化ってどうなんかね。使ってる人いるのか?
dmdでまだ形すら見えてこない64bitビルドに GDC経由でMinGWを叩くことで対応するとは…
boostのspiritみたいなやつ?
最近なんかあった?
2.059 言語としての完成度は結構仕上がってきてる感がある
toString とか opEquals とかに const pure をつけて 既存のライブラリを皆殺しにする計画の進展はいかに?
なにそのワクワク破壊計画。胸が高鳴る。
てか Sea of errors は改善されたのかのう 邪魔すぎて trunk 使う気にならない あのまま 2.059 リリースとかになったら泣きわめく
海外でも破壊的変更に心躍らされるマゾばかりなのだろうか
破壊的変更をにくむ正義の心と Dに愛想を尽かさないやさしい心を併せ持った ヒーローはいるのだろうか
これ以上絶対壊れないように、と、完全な言語仕様を作ろうとしているヒーローならいると思う。
むしろ破壊による再生を司る魔王のような
Destruction Destroy 結論 名前が悪い
おいおい、いまはDisruption的変更の時代だぜ?
全ては Dead-on (完璧な) 言語になるために
Dirty Deeds Done Dirt Cheap
D@M*'D
>>95 なにこれ絶望しかない
despair
絶 望 !?
2.059のchange logリンクがあるのに実物がないのはどういうこと?
>>97 モノはない 出るのは一ヶ月くらい先
ページを自動生成するときの都合か何かでおかしなことになってる
苦情は出てるけどなかなか直らん
ねぇもっとD言語の話しようよ
話題があれば食いつく用意はあるんだが。 まあ更新ない時はまったりしてんのもこのスレらしくてよろし。
破壊が来たら盛り上がるよね
一部のマゾが盛り上がる陰で幾人もの同志が静かに去っていく
M言語に改名しようぜ
やっぱDが入ってないと… ドM言語でいいんじゃないかな
DさんはSだからドS言語だと何度
Go-D言語
God言語
enum hello = ( ()=>writeln("hello") )(); これが通るようになればいろいろと楽しそうなんだが
コンパイル時にhelloって表示されたいってこと?
ちなみにこれは通る enum a = (()=>0)();
>>110 ではつまらないから
アウトプットの出る処理は書けないかな〜、と
コンパイルタイムIOか andrei辺りがなんか言ってたとかそういう噂を聞いたという話を聞いたことがある
Windowsでパスに日本語が入ってるとstd.stdio.Fileが使えないんですが、 何か対処法は用意されてますか?
fopenにstringそのまま渡してんのか・・・アホすぎる std.stream.Fileはちゃんとしてんのに というわけなので自分でsjisに変換(std.windows.charset.toMBSz)してやらんと無理っぽい
ありがとうございます。 auto file = File(to!string(toMBSz(filename)));
そしてバージョンアップで直っててバグると
{ auto newComer = new Developer("今日からD言語始めます!"); }
newComerはガベージコレクト対象となります
D言語のおいしいとこかいつまんで教えてください
仕様変更に強いプログラマになれるよ!
配列と文字列が簡単に扱える C言語 それ以上を期待しなければ健康でいられる
理不尽なほど強力なテンプレート 最悪なほど凶悪なCTFE 慣れたが最期のスコープガード文
2.059のbetaが出てるけど、試した人いる?
どこからDLできるのか知らんけど disruptive change とやらは結局不発に終わるのか
>>123 を探しにいったはずなのに
Github の dmd download に
なぜか Win用の curlライブラリ一式を発見するなど
Winでわざわざcurl使うってすげーー
main を省いて モジュール単体でコンパイル〜unittest実行ってできると うれしいんだが
すべてのモジュールのmain関数をstatic this()を呼ぶのと同じ順序で言語が自動的に全部呼び出すとかどうすか どうすか
>>129 よくわからん・・・mainを書かなくても暗黙的に追加されるってことかな?
Ruby みたいに ライブラリを1ファイルごとに実行したいの
scconfとdruntime に細工をかますだけでいけるかな
>>130 version(unittest){ void main(){} }
じゃだめですか
ファイル1個で走らせるときと ライブラリ単位で走らせるとき 切り替えるのにいちいちソース書き換えてる状態なのよね main.obj+Makeコマンド自動生成するのが近道だけどめんどい
一瞬 unittest { void main(){} } に見えてぎょっとしたけどさすがに無理がある
134 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/04/07(土) 18:40:22.89
D言語のAndroidの開発環境ってある?
ARM版gdcがHello World出せるようになった所
マジかよすげぇな まあgccのバックエンドがあるならさもありなん
でもD1なんでしょう?
template A(string name) { const char[] A = "struct " ~ name ~ "{int a;}"; } mixin(A!("S")); は通るのに mixin(const char[] B = "struct AA{int a;}"); は通らないのはなぜですか?
まず、 const char[] A = "struct " ~ name ~ "{int a;}"; こいつは文字列リテラルとしては扱われない しかしDのテンプレートはメンバがたかだか一つのメンバを持ってる場合、 そのメンバそのものみたいに振る舞うという性質がある だから文字列リテラルAそのものみたいにtemplate Aが使える んだよね?
>しかしDのテンプレートはメンバがたかだか一つのメンバを持ってる場合
そうではなく、
そのテンプレートと同名のメンバは、名前の参照を省略できる。
mixin(A!("S")); は
mixin(A!("S").A);
の省略形でしかない。
>>138 の答えにもなるかな
141 :
140 :2012/04/08(日) 16:49:48.82
なんか不安になって公式見たらメンバが一つであることも条件みたいに書いてあって焦ったけど、 手元で試したらなんかそうでもないっぽい・・・
>>139-141 なるほどこうなるんですね
mixin("struct S{int a;}");
mixin("struct AA{int a;}");
納得しましたありがとうございます。
>>140-141 メンバ一つに限るっていう条件は 2.058 で外れたとかどこかで見たような
Eponymous Template っていうらしい
>>143 知らんかった…
俺の知識が1.0時代で止まってる
もうhello, world!も書けないな
>>140 補足Thx
D言語の破壊的変更以上に現代では女子高生が自慰をネット配信してたりすることに驚いている今日この頃 色々たまってるんでしょうね 早く次バージョン来ないかなぁ
enum HOGE : string{ H = "hoge" } これ、-g つけると通らないんだな。 enum HOGE = "hoge"; は通るのにさ。
あ、それバグだったのか!? なんてこったい
148 :
営利利用に関するLR審議中@詳細は自治スレへ :2012/04/11(水) 13:58:26.10
memcmp実装しようと int memcmp(void* p1, void* p2, size_t n){ 〜 if(*p1 != *p2){ 〜 ってやると no value とかなんとか怒られるんだけど
まずvoidはサイズがない型なので、void*をunsigned char*などにキャストしないといけない。 int memcmp(void *p1, void *p2, size_t n) unsigned char *pb1 = (unsigned char*)p1; unsigned char *pb2 = (unsigned char*)p2; for(; n--; pb1++, pb2++) if (*pb1 != *pb2) return (int)*pb1 - (int)*pb2; return 0; }
ここはCスレになりました
つ import core.stdc.string;
void*とか、テンプレート涙目。
unsigned charをubyteに変えてキャストの前にcastってちゃんとつければ使えると思うよ
コンパイルが通る奇跡に感謝しないと
遅いのならともかく out of memory とかw
本当に「コンパイラを作るのが比較的簡単な言語」なんだろうか
当初の売り文句のかなりの部分が反故にされてると思う
ウォルたん「ね、簡単でしょう?」
もう一度原点に立ち返るべき
(int main (((array string) args)))
OK: foreach (l; File(fname).byLine()) { } NG: foreach (i, l; File(fname).byLine()) { } 下の場合は opApplyをもってないとダメになるみたいだが これってバグだよな?
164 :
デフォルトの名無しさん :2012/04/12(木) 16:11:24.98
>>154 なんで気づかなかったんだろうってくらいに普通に動いたありがとう
>>163 仕様通りやん。
ライブラリにopApplyが定義されてないのがバグだって言うならそうだけど。
std.conv.parseで16進数文字列から数値に変換できるのか… 今更知った。
this = null;
プロセス間で変数を共有するのってsharedでできますか 無理すよね
誰かD言語用のパーサジェネレータ作ってください。
たぶんコンパイラのソースからぶっこぬいて ライブラリ化するのがいちばん近道
パーサじゃなくてパーサジェネレータじゃね? まあD言語を解析できるパーサを出力できるようにするには似たようなもんか
>>163 byLineはrangeを返すので、インデックス付きforeachはそのままでは不可能
どうしても欲しいならzip,sequenceと組み合わせて
import std.stdio, std.range;
void main()
{
auto lines = File(__FILE__).byLine();
auto naturals = sequence!"n+1"(); // 自然数の無限レンジ
auto indexedLines = zip(naturals, lines);
foreach (i, ln; indexedLines) { writefln("%d: %s", i, ln); }
}
>>166 std.conv.toは基本的に
・非文字列な値から文字列への変換:std.format.formatValueを使う
・文字列から非文字列な値への変換:std.conv.parseを使う
・その他安全なキャスト的な機能
を提供する。
>>168 sharedは1つのプロセス内のスレッド間で値を共有するために使う
プロセス間での共有は…std.mmfileかなあ
ごめん、自分は使ったこと無いので使えるかどうかは不明
よくFile(__FILE__)とか思いつくなあ
>>173 のZipってopApply持ってないのに
どうやってタプルなforeachに対応してるの?
opApplyに対するforeachじゃなくてrangeメソッドに対するforeachにすり替えられているから
2.059
DAMASARETA!
change log 長すぎ
ほぼすにDのパーサ入れればいいのに
DWT2の修正してたらtoHash()の仕様変更で詰んだ nothrowじゃないとあかんのか…
disruptive の片鱗に過ぎない
bugzillaの長さが… D言語が完成されてきていいのか
たくさん書き直したからその分大量にバグっただけとも言う
unittestするのにrdmd使うのが便利だと最近知った ずっと dmd --unittest -run Dソースファイル って感じでunittestしてたけど、いちいち空のmainを用意しなきゃならんときがあったりして面倒だったが、rdmd使えば rdmd -unitttest --main Dソースファイル で勝手に空のmainを追加してコンパイル→unittest実行ができる
"キタ----!".writeln;
そんなのがあったのか!
ちっ echo "void main(){}" | rdmd
どうしてDownloadsのとこは更新されないの?
?
2.0 changelog Version D 2.059 Apr 12, 2012
なるほど古いページを見てるのか
>>1 のリンクは既に修正済みだというのに
本来古いページは全部リンク転送されてるはずだから
>>195 がそのまま見れるのはバグといっていい
【急募】D言語の歌
BSDの歌からBSを抜けばよい
>>200 D言語好きは だいぶお利口♪
F#好きより いくらかCOOL♪
そこまで現実わかっているなら♪
もうひと頑張りでーす♪
T*からref Tへの暗黙変換ってできないんですか?
OpenGLの関数とかはDからはかなり扱いづらい
>>205 glShaderSourceとかの型まわり
OpenGLに限らずreadonlyなのにconstついてないCの関数とかはtoStringz使おうにもcastが要る
>>200 何もかもをほしがってた
子どものころのままでいられたらいいのに
でもそろそろ父さんのくれた
真っ黒な手袋とさよならしなくっちゃ
飛ばすぜ! GCのペダル踏み抜いて
VM車なんかにゃ行けないあの空目指すんだ
この先、何度転んだって
誰にも止められやしないさ
DのリファレンスはML
リファレンスが別のプログラミング言語で書かれてるのか DさんのドSぶりにはもうついていけないな
CTFEで生成したDdoc文字列の適用とかできたら楽しそうだね
212 :
デフォルトの名無しさん :2012/04/17(火) 17:38:59.01
いい加減例のポンキッキーズのPちゃんみたいなキャラに名前付けようぜ
Dちゃん
214 :
デフォルトの名無しさん :2012/04/17(火) 18:50:55.71
ふう
はえーよ
今D言語でDコンパイラ書いてるけど何か欲しい拡張機能ある? とりあえずPOWERとSPARCのインラインアセンブラは実装した。
拡張機能なんて実装しても 後で本家との互換性で苦労するだけだお
どこまでできてるんだろう
>>216 とりあえず Win で動いてソース公開してくれれば
後は何とかなる
欲を言えば非GPLで
220 :
デフォルトの名無しさん :2012/04/17(火) 23:59:52.97
>>217 druntime内部でのOS管理番号を勝手に拡張してるので本家が新しくサポートOS追加したら詰む
>>219 phobosとdruntimeの一部はまんま載せてるのでライブラリはブーストにせざるを得ないかもわからんね
src/dmd/root/ってなんなんなん? Cなん?C++なん?
222 :
デフォルトの名無しさん :2012/04/18(水) 00:27:08.72
Dだと仕様変更で疲れる
wikipedia の記事の構成を少し直した 手を入れやすくしたつもり
>>224 >C/C++ に疲れた人の D 言語 2.0
それ私の書いたやつそのまんまなんだけど何なんだろうなあ。ローカルにデータ落としてたのかな。
琉球大吹いたw
読んだことあるなと思ったからURL移転してたのかと思ったけどぜんぜん違うのかww
Changed lexer to support # as a token, preserving #line's original behavior うーん… これはどういうものなのか教えて下さいな
>>231 "ABC" の " が単体でトークンじゃないのと同じように
# は
#line NUM FILE 改行
という特殊なトークンの一部として扱われていた
それが単体でトークンとして扱われるようになった
つまり何が変わるかというと、
q{ } というDのトークンだけを記述できる文字列の中で
# を単体で使用することができるように・・・
ならないじゃねーか、コンチクショウっ!!
とりあえずの内部的な変更ってやつだな
std.container.ArrayをVectorみたいな使い方しようと思ったけど中身のポインタ取れないんだねこれ
236 :
デフォルトの名無しさん :2012/04/21(土) 15:49:08.49
Dで実装した日本語全文検索システムがiccでビルドったやつより早くてワロタ あとはCGIとして動かせれば・・・・・・。
>>236 そこまで書いたということは・・・分かるな?
スクリプトやインタプリタじゃねーんだからライブラリをまるっとスタティックリンクすりゃーイイだけじゃん?
(; ・`д・´)…ゴクリ…
64bitで動かないんじゃ
>>235 をなんとかできないかなーと、std.container.Arrayいじってたんだけど、バグかと思われる。
ttp://ideone.com/OIOoj (dmd2059xWindows)修正がてら追加した Array.Range.ptr を public にしとけば 235 も喜ぶんじゃないか?
ばぐぅぅぅ
>>236 Cと同じやり方でうごかせるんじゃねーの?
>>244 サーバーがdmdが対応してないOSとかじゃね?
>>245 GDC版使ってみるとか。
クロスコンパイラだし、試してみる価値はあるはず。
gdcって1.0系じゃ・・・
std.algorithm.mapにクロージャ渡したい
249 :
デフォルトの名無しさん :2012/04/21(土) 22:58:58.36
>>245 どっこい動かないんだよなぁLinuxなのに。gccバイナリはフツーに動くのに謎だ。ABIのせいか?
>>249 もしかして、HTTPヘッダ送信してないとか?
俺のエスパーによると権限の問題だ
>>249 俺のエスパーによると
・文字コード
・実行ファイル名に依存する設定の漏れ
・リンケージ指定の漏れ(エントリポイントがmain以外の場合)
今さら気づいたけど何でコレ出来ちゃうの? おかしいだろ enum { A=1,B=1 }
toImpl!ENUM とか final switch とか整合取れないと思うんだけどな〜
>>255 ヒント
・宣言は式に含めることはできない
・無名enumは型宣言では無い
するとtypeof(A)はintになるのか
今さら気づいたけど何でコレ出来ちゃうの? おかしいだろ enum E { A=1,B=1 }
列挙型 が値の重複を許すというのがC系言語の伝統であるという 衝撃の事実をもってこの討論の終わりとしたい な、納得なんかしてないんだからね、誤解しないでよねっ
enum E { A=1,B=1 } static assert(E.A != E.B); これがだめなのが悲しいってことでしょ
>>259 理由:列挙子の別名を許すため
enum E { A=1, B=A } // E.BはE.Aの別名
final switchはちゃんと別名を判断してくれる
enum E { A=1, B=A }
void main() {
E e = E.A;
final switch (e) {
case E.A: break; //E.AだけでOK
}
final switch (e) {
case E.B: break; //E.BだけでOK
}
}
E.T == alian
alias E.T alien;
alian を align に空目した俺は、
>>234 には協力できそうにないな・・。
クロージャ周りでGCのバグ無いか 発生条件わからんが
GCじゃないな クロージャ使うとローカル変数が逝ってセグフォ クロージャの引数型ちゃんと書いたら起こらなくなった 似たような症状ない?
構造体リテラルと見分けづらい書式だったり?
>>261 歴史的な理由で、同じ値を使うのが適切なこともある。
例えば文字コードのこれとかw
enum CharctorSet
{
Shift_JIS = 932
SJIS = 932
x-sjis = 932
MS_Kanji = 932
}
あー納得した 納得したのはいいが いつになったらMS932がちゃんと使えるようになるのだということを思い出して悲しくなった
え? D言語を使っている外国人は UTF-8かUTF-16で我慢しろってお達しだけど 知らなかったの?
C#のEncodingみたいなのくれよ
276 :
デフォルトの名無しさん :2012/04/23(月) 23:58:33.05
今年も自分の誕生日を知らせるソフトが起動した もう二度とコンパイルできないけどな
こんな悲しいレス見たの初めてだ
ソースをアップデートしてないからコンパイルできないって意味だよなw
おめでと…ううっ
他の言語にパッケージマネージャが整備されているように、 Dにはコンパイラマネージャが必要なのだ
281 :
デフォルトの名無しさん :2012/04/24(火) 00:24:34.05
>>278 D2できたばっかりの頃ののコードだからな
>>279 ありがとう
D言語10周年記念にはDちゃんの同人誌を出そう
283 :
デフォルトの名無しさん :2012/04/24(火) 00:38:55.56
>>282 それだけ愛嬌溢れるマスコットならどれだけ普及していたか
.o o < / p ~q |д > |,__/ ./ > J L
Ver指定で自動変換してくれるソフト欲しい。 自動で出来ない所は指摘してくれれば良し。
var指定で自動変数にしてくれる現状のdmdで我慢汁!
そういうのを自動でしづらい奴が deprecated されていくのではないか リリースごとに移行ガイドはあっていいと思うけど
#! /bin/dmd-manager 2.058 import std.stdio; void main() { ... }
このVerのdmdで通ったと指定すると、最新リリースに自動変換かけて、移行ガイド+注意点+対象行を表示する感じ。 標準リリース内容全てをやってくれるとありがたい。Ver履歴を自力でたどるの面倒。 あと公式サイトのコード例が一部動かないけど、サイト全体をautobuild管理しないの? 公式サイトの文書も文書担当コミッタがバグ管理とか。 D言語はじめたばかりなんで、的外れだったらスマン。
公式はウォルターの趣味サイトだからなあ
公式サイトもバグレポ対象
>>290 そういう足枷をなくしてやりたい放題なところが
Dのよいところでもあり、悪いところでもあり、悪いところでもあり、わ(ry
Java+Eclipse みたいに
枠にはめて手取り足取りなのに憧れを感じはするけども
あるいは開発サイドにそのような概念を持ち合わせていないという可能性も
>>293 悪いところが(ry
やりたい放題は良いんだけど、VerUP補助ツールくらいは作れるはず。
ツールを通すと自動で出来る所は勝手に変換して、人力部分は行数と変更点を表示。
表示行を手動で直せば最新で通る、みたいな。
仕様変更についてはChangeLogから作れるかもしれないけど 副作として生じたバグや挙動変化もあるから 簡単じゃないと思う
Google Code Jam のせいで Dの注目度が少し高まっているらしい
仕様にない挙動変化やバグは他の言語でもあるから、仕様部分だけでもやってくれると楽。
dmdさん、ミスタイプ用の識別子予測でdeprecatedの関数薦めないでください
うぉるたくん「そのくらいのことで いちいちさわぐな」
うぉるたくん「やっぱり ぼくが かんがえた ぷろぐらむげんごが いちばん つよいんだ」
けっきょく Dが いちばんつよくて すごいんだよね
でぃー「わたしを つかいたいのならば ちからをしめせ」
D.NET欲しいわ……
305 :
デフォルトの名無しさん :2012/04/26(木) 22:24:23.40
自作の試作コンパイラを試しにpragmaでバージョン指定できるようにしてみたんだけど ver.毎のphobosのライブラリとソース、レキシカルアナライザを載まなきゃいけないから コンパイラがアホみたいにでかくなる ちょっと実用的じゃないね。。。
>>304 ネイティブ動作という一番のD言語の使用動機を全否定かッ
そこはnewest version に対するdiff添付で LTPT (linktime patch technology)だろ!
308 :
デフォルトの名無しさん :2012/04/26(木) 23:04:49.83
>>307 似たような考えでコンパイル時コンパイラ自動生成も今書いてる
鈍足のC++じゃ絶対できないな
まさかのこのD言語はD言語で書かれています?
310 :
デフォルトの名無しさん :2012/04/26(木) 23:09:12.14
無論 D by D ですよ
バージョンアップが辛いと思う人はD使わない方が幸せになれると思う
CだかC++じゃなかった?
これってウインドウズのGUIのソフトとか作れんの?
32bit版限定ならそれなりに。 APIを使いこなせる人じゃないと厳しいだろうけど
理論上はなんでも作れるけど・・・ ライブラリが整備されてない所はすんごく大変w
今時のを作りたいなら.NET+WPFだろうね
なるほどありがとうエロい人たち ローレベルから掘ってく感じなのね
高レベルなライブラリが出来にくいのは 言語〜ライブラリレベルで破壊的な仕様変更が頻繁に行われているからだよ そういうのが嫌ならうぉるたくんをひっぱたいて反省させてあげてね
あ、対話環境欲しいです。
あたいも環境ほしいです。
>>321 あれ、dsource.orgのやつはもはや古いのか……?
ライブラリの情報ってどこで取れば良いの?
ついったで呟く
ついったはまず名無しにしてくれ 変化が大き過ぎるから都度聞くしかないか
実はD言語って今でも普通に使ってたり使えてたりする人多いんかな
一年前と比べるとかなり実用レベル
なんかの大会だかコンテストで参加者のコードが見れるんだけど1位の人がD言語使ってたってちょっと話題になったよね。
今だからこそ前より使える
cast(auto)とか出来るようにならないかなあ
何その暗黙的明示キャスト
= の右側に単独にある場合や 関数の引数に単独にある場合に使うのか
そりゃ言語じゃなくてIDEの機能だべ
それいったらauto自体がIDEの機能だし テキストエディタで書きやすいって特徴を伸ばすのはありだと思う
支援機能無しじゃとても書いてらんねえマークアップ言語とか わざとやってんじゃねーかと思えるテキストデータ形式が増えたよね
Javaとかエディタで書くと苦痛そのものだがDではその苦痛がほとんど無い templateのカッコ省略とかも何気にステキ機能
IDEが必要なのは抽象化機能の不足
auto はテンプレートとかクロージャのために必要と思ってる
>>331 は 中身わからないけど alias とか使うと幸せかも知れない
pure nothrow @safe const とか長い修飾子ちゃんと付けてるひといるのか
その前に、Dのcastって、相当低レベルな処理だぞ。 簡単にautoとか出来るような処理してないぞ。
constとinとimmutableはつける 後は……
autoがvarに変更にならないかな Cのauto変数と意味が違うからどうも
c++11と同じだから問題ない
@safeとかnothrowとか微妙に推論してくれるようになった気がしたけどそんなことはなかったぜ
poseidonって完全更新とまってる? () => (...) があるとparserが失敗する・・・
なんか前はinPatternでa-z指定してもA-Zにマッチしてたような気がしたけど いましないねいつ変わったんだろう それとも気のせいかな・・
>>346 死んでるなぁ→どっこい生きてた→死んでるなぁ→どっこい生きてた→死んでる ←いまここ
>>346 ソースのライセンスも明記されてないような・・・
VisualD使え捗るぞ
VS2008だとShell入れないといけないし、VS2010は登録しないと使えないし・・
visualDってプロジェクトごとにライブラリやインクルードするフォルダの設定とかできる?
だれかblazeって使ってる人いる? box2dをD言語に移植したやつらしい. これやるのとbox2dをC経由で使うのとどっちのがいいのかなぁ
18スレ目見る限り(Demoを)動かした人は多数いる模様
これのライセンスって商用利用時にも使いましたと明記する必要なしって読めたけどあってる? でも2009以降の更新がないということは・・・・
blazeコンパイルしてみたけど挙動がおかしい\(^o^)/
>>356 2.059でmakeかけたらコンパイラに怒られまくったorz
自分で機能追加とかする気がなければラッパーで・・・って C++じゃそうもいかんべ
>>357 2.059でもinoutとビット演算の部分なおしただけでコンパイルは通ったけど・・・
LF改行の中に CRLF が混じってて行番号ずれに悩んだ・・・ぐぬぬ
>>359 他にも↓とか直したんだけど
・final→immutable
・変数名lambda→別名
・no reachなんたら
・final switch
・@property
↓なんぞ・・・・
bzNullContactに2引数のコンストラクタ持たせても消えない・・・
.\dynamics\contact\bzContact.d(120): Error: null dereference in function _D5blaze8dynamics7contact9generator13bzNullContact13bzNullContact6__ctorMFZC5blaze8dynamics7contact9generator13bzNullContact13bzNullContact
>>361 class bzNullContact : bzContact
{
this() {
super(null, null); // 実行時にぬるぽ
}
}
いや、コンパイラがそんなとこまで頑張らなくていいから・・・w
コンパイラじゃなくてオプティマイザの仕業だったかも
とりあえずこれでdmdは大人しくなってlib作れたけど そもそも元のソースで構造体変数にnullをセットするようになってたのはOKなのか・・・ class bzNullContact : bzContact { private bzShape s1_; private bzShape s2_; this() { super(s1_, s2_); } override void evaluate(bzContactListener listener) {} }
helloWorld.dを実行すると 一辺1.0のBoxが y=4.0 から自由落下した結果 y座標が3.9972〜0.9972まで変化して表示されるんだけどこれって正しい動作? 0.0028ずれてない・・・?
>>364 新しいdmdは賢いからそういうおかしなコードは通らない。元々許してたのがおかしいんだけど。
VisualD 0.3.32
>>365 それもおかしいし,落とす物体の初期x座標を0.01ほどずらすともはやカオス
ふとしたことからiniファイル読むプログラム作るはめになりそうなんだけど std.iniって結局phobosに入るの?
わざわざ入れるほどのものでもない ほしければ自分で取り込めばイイ 機能追加とかも考えにくいし
入らないっぽいのか じゃあ自作するかー。Dなら5秒で書けるだろ
なんかblazeメンテされてないから最新のBox2DをBox2D4Dとかの名前で移植しようかと思ったけど 全部だとめんどいですね。ポーティングの方がいいのかな。でも元ソースがC++という・・・
D言語で構造体変数の参照(非ポインタ)をreturnする場合って↓みたいにすればコピーコンストラクタ走らないですか? ref const(S) f(){return m_s;} C言語で言うと↓見たいのがやりたいです const S& f(){return m_s;}
>>373 戻り値のref は左辺値として使う時専用みたい。
構造体Sにint x; というメンバがあるとして、
f().x = 10; // コピーコンストラクタは走ってない。
戻り値を代入すると、
auto s = f(); // コピーコンストラクタが走る。
みたいな感じ。
あれ・・D言語のstructがわけわからない・・・2が表示される sの参照がssにセットされるからss.aに値を代入すればs.aも連動するはずじゃないのかな コピーコンストラクタも動いてないし何が起きてるのかさっぱり import std.stdio; struct S { int a; this(int a){this.a = a;} this(this){ writeln("copy ctor!"); } } ref S f(ref S s) { return s; } void main() { S s = S(2); S ss = f(s); ss.a = 101; writeln(s.a); }
ss を初期化する時点でコピーされる C++ の参照でも同じじゃん
コピーされたなら コピーコンストラクタのthis(this);が呼ばれない? "copy ctor!"が出力されてないからthis(this);が呼ばれていない⇒コピーされていないって思ってるのだけど
this(this) はビットコピーが完了した後呼ばれる・・・呼ばれてないな
>>372 フォーラム見てるとBox2D4Dってプロジェクトはアルっぽいけど動いてなさげ
box2dをDに移植するのと,blazeをD2に移植するのどっちが楽なんだろ.blazeはどの程度使いまわし出来るんだろ
>>381 ・blaze⇒D2
ほぼsed等の置換でD2に対応出来た
元のソースのバージョンが古いためスプライト描画等の機能が少ないと思われる。
挙動がおかしい?
最新版のbox2dとはファイル構成をはじめ結構違う
・最新のbox2d⇒D2
移植めんどい
C++等でbox2Dを使用したソースを流用しやすい(古い版を使用したソースはその辺に転がってない・・)
blazeのベースとなった当時よりbug fixされていて安定していると思われる
copy on writeとかの処理ミスってるぽい動きだなあ
ビットコピーだけして終了してる感じなのだろうか
SQLiteって今のDでだれか使ってる? すぐに使えるのなら使ってみたいんだけど。
生のC用APIそのままでいいなら普通に使ってるよ
Dを普通に使ってるのもすごいな・・・
ウィジェット・ツールキット以外は使えるんだよ、それ以外は。
shiftjisのファイル読みたいんだけど、Dで手っ取り早い方法ある?
>>391 WindowsでUTFを使う
今も使えるかは知らない
char*に突っ込む
jcode.d
Dを何気ないツール書くのに使うときってtemplateとか素敵機能使う? 俺ベターC++的な使い方以上なかなかできない
むしろテンプレートだと意識してないかもしれない to!int(n) とか頻繁に出てくるし、 void foo(T)(T n) {} とか普通に書くよ
逆にテンプレートがないと書けない。 C++もboostがないと書けない。
(T)(in T[] list, ..){ ... みたいのはよく使う
C++にない機能はあんまり使わないかも。 2進数リテラルとforeach、レンジ、スコープガードを使うくらいかな?
組み込みの連想配列とか配列スライシングは頻繁に使う C++でもできるけど文法面がけったるいというか あと型推論 文字列もimmutableになってるのは結構便利だったりするし
std.xmlめ、行内にascii以外の文字があるとインデントがでたらめになりやがる どうせ直さないのはわかってるけど結局今phobosのXMLはどうなってるの?
C++のfriendとかどうやって移植すればいいんだ・・・
普通に同じモジュールで
private は、同じクラスのメンバのみが参照できる、 あるいは同じモジュールのクラス/関数のみが参照できることを示します。 private メンバをオーバーライドすることはできません。 モジュールのメンバを private と宣言するのは、 C での static宣言と同等です。
406 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/05/10(木) 18:16:16.58
D言語のWin32 APIサポートは貧弱みたいだね。何かいいのある?
最近あんまり触れてなかったからよくは知らないけど BindingsプロジェクトのWindowsAPIとか使えるんじゃね?
>>404 C++の元のソースがあんまり関係ないクラスのprivateメンバをチラ見したいがためにfriend指定してるっていうひどい作りなので
そういうクラスたちを一緒のファイルに入れるのがすごく抵抗あるんだ
しかもそんな利用法のfriendが大量に並んでるからものすごいカオス
真っ当じゃない使い方のfriendに相当する機能がないってことは設計から見直すしかないのか・・・・・
>>409 1モジュールに全部詰め込んでしまえばいい。
>>409 なんだそのカプセル化の基本を無視したコーティングはwwww
逆に興味ある。
publicでいいんじゃね?w
character
>>414 cast(immutable)なこと出来たのかー
実態は大差ないけどassumeUniqueの方がいいかもね
assumeUnique()の「決意表明である!」みたいな説明を見て なんとなく不安になるのは俺だけじゃないはず
「コードを書く側がimmutable性を保証する」って意味だからそんなに怖がらなくても
421 :
386 :2012/05/11(金) 00:46:05.19
>>387 ,388
遅くなったけどありがとう
程々にがんばってみるよ
Linuxはiconv使えばいいかな
box2d4dのコードをD2用になおして動かしてみたんだ. バウンドすらしねえ
SWIG でなんとかならんかな〜と思ったけど 情報が少なすぎて手も足も出ない
これってどっちもOKじゃなかったっけ?1の方がエラーになる 1: std.stdio.writeln("xxx"); 2: import std.stdio; writeln("xxx"); ----------------------------------------------------------- Error: undefined identifier std
std.stdio.って付けてもimportの省略とかはできませんよ 同じ名前の関数が別モジュールで複数ある場合に「どこの」関数であるかを明確にするために使います
あれ?おっかしいなぁstd.conv.toはできるんだけど ↓とかv2.059でも行けた。でもwritelnの方にはつけるだけじゃだめぽい import std.stdio; void main() { writeln(std.conv.to!int("123")); }
ばぐっすかーなるほど
>>27-29 en.wikipedia の TLS には書いてあるのを見つけた
公式の Glossary に UFCS の項目がないのは重大な手落ちだと思うんだ 誰か(ry
いつからだ・・・・いつから 「new 構造体()」が実体じゃなくポインタを返すようになったんだ・・・・
構造体newの犠牲者がまた一人
実体を返してた時代があったのか・・・ Phobosがstruct使いまくりだした時代にはもうそれがなくなってたのかな?
435 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/05/14(月) 11:10:32.63
誰かD言語用の入力補完システムを作ってくれませんか?
WideCharToMultiByteは置き換えられない文字は?になるけどiconvは途中までの結果でエラーリターンしてくるぜ。
構造体をnewしたことないわw
D言語で書かれた国産ソフトってある? ゲーム以外で。
うちの会社のデータ処理アプリ 分析やら整形やら
使えるようで使えないのがD言語 大した使用の差なんてないくせにいつまでもベータ版気取りやがって!!
別に値打ちこいてる訳じゃなくて あまりに魅力無いからレイプしたいと誰も思わないだけ
GUIがろくに書けない時点で作れるソフトの選択肢が大幅に
標準入出力のパイプで通信してGUIの構築とか入力の受け取りとかやってくれるソフトないの?
gtk-serverとか? 破壊的変更毎に修正する手間はかけられない。 つまり普及の最大の障害人物は(ry
とりあえずstd.datetimeを捨ててくれたら使ってやる。 あれが必須レベルでリンクされるとか実用の妨げにしかなってない。
rdmdって単一ファイルにしか使えないの? importで別の.dソースファイル参照するとか出来れば幸せなんだけども
私に良い考えがある。 破壊的変更をしないベターC++としての、D--を作って普及させるんだ。
でかいんでしょう
std.regexって今後小さくなるかな GCとかも
間違いなく大きくなりますね
なんで? 今はまだ最低限の実装ってこと?
世代型のコピーGCェ・・・
こないだうぉるたんがGCまわりいじってたけど 世代型はまだまだ手付かずと思っていいのかな
GCなしオプションこい GC使う機能は全て無効で
@nogc属性が追加されます
GC無しはD言語使う意味半減な気がするから、 もっと賢く軽くなって
組み込み用のクロスコンパイルくらいでしか使わない機能だな
関数のbodyのとこにelseって書けない? こういうのしたい void func(T)(T t) if(is(T : xxx)){ }else if(is(T : yyy)){ }else{ }
static ifでどう?
とりあえず中身は遅くてもバグだらけでもいいから インターフェイスを完璧に固めてくれ
うわああああああああああああああああああああ そんなとこにもstatic・・・・orz else ifってelseifじゃなくてelse{if}だったね、そうだね・・・勉強になった
Phobosに内部表現そのままでキャストする関数ってないのか? *cast(type*)&varって書かないとだめ?
>>467 そんなことしてもメモリ配置は変わらないぞ。
型の変換をしたい →std.conv
同一の型か調べたい →is()式
>>467 もしかして、型情報だけ変えたい?
cast()でおk。
470 :
467 :2012/05/19(土) 18:12:57.52
例えばuintの0x7fc00000をfloat.nanにしたいってこと cast()だとnanにはならない phobosに用意されてるのがあれば使いたいだけでポインタ通すままでもいいんだけど
>>470 ああ、これは確かに気持ち悪い。
http://ideone.com/285cb もしかして、これが必要だったりする?
std.math
pure nothrow @trusted real NaN(ulong payload);
payload の情報を埋め込んだ Quiet NAN を作ります
float に対しては、埋め込み可能な最大の payload は 0x3F_FFFF です。 doubles では 0x3_FFFF_FFFF_FFFF、 80-bit や 128-bit の real では、0x3FFF_FFFF_FFFF_FFFF が最大です。
pure nothrow @trusted ulong getNaNPayload(real x);
NAN から整数値のエラー情報を取り出します。
Returns:
ulong で payload を返す
float に対しては、埋め込み可能な最大の payload は 0x3F_FFFF です。 doubles では 0x3_FFFF_FFFF_FFFF、 80-bit や 128-bit の real では、0x3FFF_FFFF_FFFF_FFFF が最大です。
俺は*cast(T*)cast(void*)pとかやってるなあ おまじない的にvoid*挟んでる
そろそろideoneもDのバージョン上げて欲しいなう
こういうのできないかな a[0..10].func();→foreach(ref x; a[0..10])x.func();
UFCS的に不可
import std.algorithm; a[0..10].map!(x=>x.func)(); これじゃダメなん?
ごめんね素直じゃなくって 夢の中なら言える
思考回路は ショート寸前 今すぐ 書きたいよ
ラムダ式って複文書けないのか・・・ 実行されないと思ったら関数が返されてたっていうね 結果()=>{}()とか何の暗号だよ
それがλ式
(args){}のargsが空の時省略できる代償 Scalaに慣れてる人は戸惑いそう それでなくとも文としての{}は単なるスコープになるし関数リテラルは=>デフォでいいんじゃ…と思ったけどコンパイル処理が
結論: 関数リテラルでよかった。
λ式って単に記述がシンプルに書けるってだけの存在なのかな。
","演算子多用してこうぜ
カンマ演算子は滅びるべき ()なし関数リテラルも滅びるべき ラムダは言語の機能・特徴を一言で表せる点で有意義
プールしたメモリを使用するnewを提供するテンプレートクラスください
再利用の基準とかあるんだし 自分で作れよ
条件コンパイルの version識別子を複数一括で変えたくなったとき もうちっと気の利いた手段がほしいな version -> ファイルをまたぐ -> static if + enum -> 共通ヘッダにまとめて public import -> カコワルイ
int型数個のみ入ったshared構造体から値コピーしてsharedを外すにはどうすればいいんですかね
S d = cast()s; ideoneは古過ぎて検証目的には使えない
公式サイトの和訳も、すっかり古くなってきてるなぁ・・・
495 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/05/24(木) 11:59:45.98
まさか今になってD1の新規記事を書かれるとは
DのWin32 APIのフルサポートをやっちゃうぞぉ! 乞うご期待。
>>497 public domainで既にあるしなんで今更
しかもAPI直叩きなんてポインタの嵐でDの良さ半減しちゃう
どうせならDのサポートするOS全部サポートするGUIライブラリにしてよ
まじでなんでD1
我々の界隈ではD1を選択することを逃げと呼ぶ
新しいGUIライブラリなんてもういらない どうせやるなら既存のものを他のOSに対応させたり機能を洗練させたりすることに力を注いで
DWTはいいぞぉ、元がSWTで使い倒されてるだけあって機能不足だけはありえない
DWT をWindows で使う時ってどうなの? ユーザー側でのランタイムのインストールとか DLLやバイナリが水ぶくれになるとかがなければ使ってみてもいいけど よくわからんw 気にしなくていいのかな
wxD のがいいんじゃない?
UPX使えとか投げやりな
>>504 ありがと
サイズの小さいやつを見かけて もしやと思ったけど残念
>>505 更新されてるのん?
immutable(byte)[] bytestring = ['a','b','c']; string text = bytestring.to!string; writeln(text); writeln(text.length);
DWTはD2へのインストール法がわからん。
>>509 D1と同じやり方で使える
んだけど、実はsubmoduleが最新になってないことがあるので
最新のD2で使うにはpullかけて更新しなきゃいけなかったりする
git clone
https://github.com/d-widget-toolkit/dwt.git cd dwt
git submodule init
git submodule update
git submodule foreach git pull origin master <- 全submoduleのpull
rake base swt
wxDはTreeCtrlがまともに動かなかったのは直ってるのかなぁ
>>510 サイトに書いてあるインストール法とチガ(ry
冗談はさておき、pullを含めてもエラーはstd.loader。
dwt/base/src/java/nonstandard/SharedLib.d(8):
Error: module loader is in file 'std/loader.d' which cannot be read
環境はarchのdmd2-git最新だけど、Linuxの開発者いないのかな。
2.059タグからstd.loaderを持って来たけど、 core.thread.Thread.sleepのdepricatedで止まった。 やはり向いてないのであきらめる。
>>511 linuxは手出してないわ…すまぬ
たぶん2.059の崩壊的変更で死んでると思う
メリットないからな
linuxの場合はそれこそGtkDとかが相性良さそうな気がするな Windowsで使うとDLLだらけになって死ぬ
GtkDはtypedefをaliasに直す作業がいる
class A{} class B : A{} A b = new B(); typeof(b) ←A 実際のインスタンスの型のBが知りたい場合どうすればいい?
A a; if (なんか分岐) a = new B; else a = new C; こうなると「型」を得るのは無理。 実行時型情報ならclassinfoプロパティで取れる writeln(a.classinfo);
可能性のある型全部にcastしてみるとか
classinfoどうもです
>>511 Ubuntu10でやってみたけどstd.loaderがなんとかとは言われなかった
何か別の問題があるのかなぁ
以前はlinuxの方メンテしてくれてた人がいたんで当て込んでたんだけど動きない…
とりあえず動くようにはしてpull request出しときました
あれ、というかArch版Phobosにはstd.loader無いの?
>>522 調べたら2.059以降に削除。かなり昔にdepricatedが出てる機能。
ただ2.059で入れ直しても別のdepricatedエラーで無理だったからメンテナが居ないっぽい。
するとphobosは標準で動的ロードができないのか tangoの時代来るな
tangoはもう眠らせてやってくれ
というかいい加減眠ってくれ
これの処理結果はどうなる? assert([] == null); assert("" == null); assert([] is null); assert("" is null);
1.空配列はnull 2.文字列比較演算子オーバーライドでnullと判断される? 3.空配列はnull 4.""は'\0'が末尾に付くのでnullじゃない
Dの空文字列は[]じゃないの?どちらにしてもemptyの使用を推奨
""は長さは0だけど、C(ゼロ終端)用に、その奥にヌル文字が付いてる。ただしリテラルに限る
コンパイルエラー false コンパイルエラー false でw 適当ww
バグくさいけど 知っておかないとそのうち痛い目に遭う
仕様通りじゃね? 俺は不思議には思わん
true true true false -- assertion error 2番目が false あるいはコンパイルエラーなら納得できるんだが 暗黙変換でもしてるのか?
配列の==比較は 1. 長さをチェックして異なればfalse 2. 各要素foreachで、==演算子がfalseならfalse 3. trueを返す 2番は両方の要素数が0ならそもそも行われないので falseを返す要素が無いのでtrue
公式の等値式と同一性式を参照 == nullはコンパイルエラーで弾かれてほしい
>>538 俺もwin32API使うときにそうなったけど、何が原因だったんだっけなぁ。
ポインタ周りだったかなぁ。
>>538 CoCreateInstanceが成功してるならIFileOpenDialogの定義が間違ってるとか?
後はIFileOpenDialogの使い方自体だけどよくわからんな
Vista以降の割と新しいIFだからWinMainから呼び出さないと死ぬとか?
COMはいろいろ使ったけど困ったことないなあ
541 :
538 :2012/05/29(火) 23:10:18.59
GetOpenFileNameでも同じ結果のようだ
ただ、フック掛けると古いスタイルのダイアログになるんだがそのときは成功する
>>540 宣言は間違ってないし、C++でほぼ同じ感じでmainから呼び出すと成功する
もしかしてエラー6BA?
>>538 勘で答えるけどIFileOpenDialog* dlg;ではなくて?もしくはcast(void*)か
544 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/05/30(水) 08:28:54.84
64bitコードを吐けるDを実装したら作れるだろ
546 :
538 :2012/05/30(水) 10:57:35.81
>>542 もうちょっとkwsk
>>543 Dではinterfaceはclass同様ポインタなんだ
そもそもそこの宣言が間違えてたらダイアログを開くことすら出来ない(Access Violationでね)
問題なのはダイアログが表示されてから落ちることなんだよね
>>546 詳しくは忘れたけど
GetOpenFileNameやリストビューなんかのWinのコントロールは
何のためか忘れたけど内部で必ずエラーコードとしてトラップされる
値を返す構成になってて、そのコードが6BAって感じだったはず
前者はダイアログが表示されてから、後者はフォーカスを持ったら
値が返ってくる感じになってる
>>544 プログラムが終了した時にデストラクタが呼ばれるけど、その時には標準出力が閉じてるから。
内部のオブジェクトがすぐに解放されないのは、その時点で本当に使われてないのか判断できないから。
あと、適当にリファクタリングしてみたw
重複コードがどうにかならないか検討中・・・
http://codepad.org/QXAeG2aJ
>>548 追記
型比較するだけなら、.nameいらないみたい。
>>550 いやいや。
単純に内部のオブジェクトが別の場所で参照されてる可能性を考えてるだけ。
552 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/05/30(水) 13:43:28.67
RbArrayの中身がうまく解放されるようにするにはどうすればいいですか?
>>552 単純な方法は、RbArrayのデストラクタで、内部のオブジェクトを明示的にdeleteする。
ただし、親のRbArrarも明示的にdeleteされる必要がある制約が付く。
これってバグかなあ。フォーラムで報告した方がいいかなあ。
プログラム終了時のデストラクタでオブジェクトの参照をするのは もともと正しく動かないと言われているよ
んー。不具合なのかな。 リソース持つ物はそういうもんだと思ってた。
ところがドッコイ、仕様です!
http://www.kmonos.net/alang/d/2.0/class.html GC が参照されなくなったオブジェクトを必ず解放するという保証はありません。
さらに、 GC がデストラクタを呼び出す順番も保証されません。
これはつまり、 GC管理下にあるオブジェクトへの参照をメンバとして持つオブジェクトのデストラクタを ガベージコレクタが呼び出すときには、それらの参照は既に無効となっている可能性があるということです。
従って、 デストラクタからはメンバオブジェクトを参照できません。
この規則は、 autoオブジェクトや DeleteExpressionで削除されるオブジェクト (GCが自動で解放することはないので、参照は必ず有効)には当てはまりません。
>>559 って、一般的なGCのあるオブジェクト指向言語だと当たり前だと思ってた。
Disposeせな。
当たり前かな? GCも作成順と逆順を保証してくれるのは結構ある気がする。
>>561 賢いのもあるんだなぁ
でもそうすると、複数オブジェクトの中で参照が循環しちゃうと、誰にも開放できないのが出来ちゃうんじゃないか?
親が消えれば必ず子が消えなければいけないというのも、不便かも。
でもそれでも循環参照が発生すれば結局segfaultも発生すると思うよ
「Dがもう一個」の名言が消されてるからむむ、と思って概要を見に行ったら あのマスコットはまだ頑張っていて絶望した
>>555 バグじゃないよGC持ってる系の言語初めて?
今日、D1の仕様和訳が、誤訳ってレベルじゃ無いってくらい、間違いだらけなのに気づいた。 まあ、D1だけどねw
>>569 ああ・・・次はアクションゲーム部分だ・・・
え?アクション?えぇ??ちょっ・・・。Orz うーん。D自体を触ったのが大分前なんだよなぁ。うーん。 ウィンドウが出て画像が貼れるライブラリってどれなんだろう。 SDLはよくわからないから普通のGUIキットがいいなー。速度、度返しで!
アクションゲーム作るなら普通のGUIツールキットは使いづらいんじゃないかなぁ それこそSDLとかのほうがやりやすい
dxlib4dとか最近あるよ 簡単だし、いいんじゃないかな
577 :
569 :2012/05/31(木) 02:41:56.42
>>573 うーん。そうですかねー。うーん。
>>574 アカウントとったんですか!!!!!
仕事早すぎですよ。
>>575 欲しければMQO上げますけど。元画像の版権のことは知らない!
ちなみに、トランスフォーム済みでボーンとかは入ってません。
ムラムラして1時間で作ったんで・・・。
>>576 ほえー。それは楽そうですね〜。
578 :
577 :2012/05/31(木) 02:57:20.55
579 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/05/31(木) 10:59:08.77
this(int i) { ... } this(long l) { ... } this(double d) { ... } このようなコンストラクタの呼び出しのあいまいさを回避する方法ありますか?
>>577-578 まさかのハードコードww
まあ、実用上は問題ない。
画像が欲しかったのは、プロジェクトロゴに使いたかったからで、実際のゲームに使われるかどうかは知らないw
>>579 あいまいさの意味はわからないが、
呼び出し側で、型指定すればいい。
引数に、
cast(int)
cast(long)
cast(double) をつける。
583 :
538 :2012/05/31(木) 14:06:37.21
バカな・・・ -L/SUBSYSTEM:WINDOWS:4.0で直った・・・だと・・・ M$は俺に謝罪しろ!今すぐにだ!
>>583 defファイル渡してなかったってオチ?w
>>583 4.0ってだいぶ古いぜ?
指定するなら少なくとも5.0(Windows 2000)にしたいし、それで動かないならAPIの宣言が古いんだろう。
586 :
538 :2012/05/31(木) 14:51:10.07
>>584 VisualDに任せっきりなのでdefファイルてのは分からん
>>585 どっかで見たのが4.0だったんで特に意味は無い
でもありがとう5.0かそれ以上にしとく
>>580 あ、それなら使ってもいいですよ。
あと、一般的な汎用の大の字のモデルを作るのはそんな難しくは無いですね。
import std.net.curl;すると隣家に怒られるんだけどもしかして外部のライブラリを拾ってこないとだめ? 環境はwindowsです
やってみたけどバイナリ拾ってきて自分でimplibしたら一応使えた
Ubuntu Linuxでもリンクエラーが出る % dmd -ofdt dt.d -L-lcurl /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libphobos2.a(curl.o): In function `_D3std3net4curl4Curl19_sharedStaticCtor28FZv': std/net/curl.d:(.text._D3std3net4curl4Curl19_sharedStaticCtor28FZv+0xf): undefined reference to `curl_global_init'
593 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/06/01(金) 16:24:38.48
dlang.orgもdigitammars.comもどうしちゃったん?
opIn, opIn_rがD1で動作しないみたいだが。。。
>>595 Digital Daemonというタイトルで戦闘機に乗った赤い悪魔が表示される。
>>597 あー、そういえばin演算子だけ、戻りの型が元の型と違うんだった。
is(Base T: T[])なら、T opIn(Base)だw
あとopInAssign()もいらなかったw
いや、T* opIn(Base)か? どっちかなw
ちげえ、T* opIn(T)かw もう、分けわかんなくなってきた。
と思ったら、もう修正してあるのか・・・ すまん。
>>603 ん? よく見たら戻りの型がポインタじゃない?
なんで今さらD1なんかで盛り上がってんだ?
陰謀を感じる
D1が完全終了するのは今年末だっけ? 半年しかないぞ
いつも終わったところで車輪の再発明するそういう趣味なんだよほっといてやれ
>>612 すげー。
俺もパースしようと何度か挑戦したけど、いつもエネルギー切れて中途半端になってしまう。
めちゃくちゃ感動した。
コードがちゃんとDっぽい つーかこれに地味に感動した→ "Dさん.mqo".read.to!string 俺もmqoパーサ書いたけどmqoってsjisなんだよなあ readLineで読んでるんだけどファイル中に全角文字が来ると落ちる・・・
immutableなデータをdeleteするなんてことが許されていいんですか!?
3Dの一般的なモーションデータならbvhらしいけど、メタセコ特化ならmikotoやMMDの形式はどうだろう
sjis対応乙したー 使う場合ライセンスとかどう扱えば良い?
socketstreamのavailableが常に0で来る・・・
std.streamのreadLineはseekableなstreamにしか"\r\n"改行対応してないせいで seekableではないstreamであるsocketstreamを使ってHTTPやろうとしても http応答のヘッダ最後の空行を読みきれなくて(\rだけ読んで満足してそのあとの\nを読まない) 本体データの先頭に"\n"が混入するんだけどスマートな回避策ないですか?
UTF16を可変長にしたやつが悪い CJKの要求全部まとめて突っぱねればよかったんや
DWT2からstd.loader排除したやつマージされた
やだなーオワコンなものがいつまでもDの標準ライブラリに在り続けてるわけないじゃないですか
std.openrj std.regexp std.socket std.stream std.cstream std.bindやらやら
socket関係ねえや
631 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/06/04(月) 08:44:34.36
>>607 今度はD2で動作しない。
D2のalias thisはopInをオーバーロードしていないみたい。
>>631 (key in object)で発生するのはobject.opIn_r(key)なのでそっちを定義したほうがいいんじゃないかな
>>632 mikotoはよく知らないけど一般的にモーション⇔モデルって関係はなくてボーン⇔頂点じゃない?
>>632 乙
しかし、俺は使ってる側なので実装はわからず、これ以上お役に立てないなあ、スマソ
OpenRDB のサイトが役に立つかもしれない ちらっとしか見てないけど
>>632 DさんにMikoto式ボーン入れてみたよ。RokDeBone2でも動くかも??あ、一ヶ月くらいで消えるよ。
ttp://www1.axfc.net/uploader/File/so/79720.zip&key=2ch ボーン自体はオブジェクト欄の bone|hoge って書いてあるのがボーン。実装は線と三角形の連なり。でも骨。
ボーンの影響範囲を決めるのが anchor|hoge ってかいてあるのが、アンカー。
箱のマテリアルとボーンのマテリアルがひもづけられてる。箱の中の頂点がボーンの影響範囲。
ボーンのつなぎ目で箱が重なってるところが関節。
って感じじゃないかな。
久しぶりにボーン入れたから、時間かかっちゃった。
何が出るかな。何が出るかな。
>>638 deleteはオワコン(代わりにclear関数、どうしてもメモリ解放が必要不可欠な場合のみGC.freeを使う)
既存クラスのデストラクタを呼びたいんだよね
プロパティの返すクラス参照のアドレスを取ろうとしたらdelegateが取れたでござるの巻
std.datetimeを使うための専用記事が・・w
644 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/06/08(金) 13:14:43.45
なつかしい
>>634-636 あざす!ちょっと勉強します。
OpenRDB!こんなのあったのか!ググルスキル不足でした。
>>637 すげーお!踊ってるお!ありがたく使わせていただきまス!
アンカーの入れ方が勉強になる!Motionは入れ子にできるのかー
>>644 やねさんはD言語のことわすれてしもたん?
DFLは生きてるけどdfl.exeは実質死んでるのな
古いDMDで一回ビルドすればそれっきりだからw
@property void myDelete(T)(out T o) { o.clear(); o = null; }
obj.myDelete;
妄想構文集 後置if,後置while: foo() if (cond); foo() while (cond); 後置with: exp with { t; /* same as exp.t */ } 変数宣言でタプルを分解: (int x, int y) = returns_coordinate_by_tuple(); (auto x, y) = returns_coordinate_by_tuple(); 関数型をArrowで書ける: T->T->T succ(T)(T->T->T n) { ... } ブロック構文: repeat(10) (n){ writeln(n); } 10.times (n){ n.writeln(); }
recursive(i=0;MAX!=0;++i){a(i);if(i<MAX)repeat;else b(i);c(i);} //a(0)a(1)a(2)b(2)c(2)c(1)c(0) breaker(x){case 0:break;a();case 1:break;b()case 2:break;c();} //x > 2 ... a()b()c()
アローはないだろうな同じ見た目でC/C++と全く別の動きするのは採用しないから あとブロック構文は砂糖臭が・・ import std.stdio; import std.range; @property auto times(T)(T n){return n.iota();} void main(){ foreach(n; 10.times){n.writeln();} } でもこれはこれでいまいちだった
Pythonみたい
>>651 >後置if,後置while:
ぶら下がり文でよくね?(今も使えるし)
if(cond) foo();
while(cond) foo();
>後置with:
もっと簡略化してもいいのかもしれない。
with exp, sym, tem; //このスコープに exp, sym, tem の中身を展開!w って、これどこのusing?
>変数宣言でタプルを分解:
きっと、Dのタプルを使ったことが無いんだろうな。うん。
>関数型をArrowで書ける:
これはみんな楽に書きたいと思ってるよなww
俺的にはラムダ式風にこう書きたい。
(int, string)=>char //char delegate(int, string)
もしくは・・・
char<=(int, string) //char delegate(int, string) //function? 知るか。
>ブロック構文:
foreachじゃだめか?
foreach(n; 0..10) { writeln(n); }
もしくは、repeat関数でも定義するかw
void repeat(T)(int, void delegate(T));
ああ、PHPの文字列リテラル内での変数展開が真面目に欲しい・・・
PHPそのままの構文だとちょっと使いづらいから改良して・・・
Point a = { x:12, y:56 };
writeln("x = $a.x; , y = $a.y;"); //x = 12 , y = 56
いつのまにか関数がタプル返せるようになったの?
import std.stdio; struct Tuple(T...) { T tuple; alias tuple this; } Tuple!(char, ubyte) foo() { return typeof(return)('F', 16); } void main() { auto v = foo(); writeln(v[0], '=', v[1]); }
しまった、F=15じゃねーか
>659 interfaceのfinallyの継承とか入れてあげてもいいんじゃない
2.060まだかな
D4きたー
まぼろしのD4プリンセス
D4U
D or Alive
いともたやすく行われるえげつない仕様変更
tangoってまだ生きてたのか 誰得
class C{@property static int opCall(){return 0;}}
void main()
{
C * 1; // @property効かない・・・
}
>>669 更新おつかれさま
>>670 それって Cのポインタ変数になるんじゃね?
>>669 おぉー。ちゃんと動いてる・・・。
短期間にここまで出来るってすごいね。
俺、理数系はダメだから、称賛する。
クラスは参照型でポインタを含むからクラスのポインタとするとポインタのポインタになっちまう
Dのクラスが参照型なのはわりと大きなC++との違いで評価されるべきところだと思う
>>669 おお。
プロジェクト主なのに作業進めてなくてサーセンw
VisualD 0.3.33
scopeストレージクラスはそのうち仕様から消えるからこれでいいよ import std.typecons; class MQOTest; void main() { auto wnd = scoped!MQOTest; wnd.mainLoop; }
scopeは外から来た変数を代入すると動作が怪しくなるという欠陥があるからなあ 本来scope/TLS/sharedが排他的な属性でないとならない
class C { lazy obj = new Object; void method() { lazy o = new Object; // ... } } こんな構文が欲しい… フィールドの初期化がコンパイル時にしかできないのが地味に不便
>>681 あ、確かに
遅延評価変数は微妙にほしかったりしてたので混ざっちゃったのぜ
>>681 scopeのdeprecatedいつのまに外れたの?
scoped!のスコープ外への持ち出し規制は自己責任でってのも言語のコンセプトと合わないよなあ
そのコンセプトはSafeDに引き継がれました
686 :
669 :2012/06/21(木) 04:28:55.58
おまいらレスありがd
>> 678 あそっか、scope なくなるの忘れてた
と思ったら
>>683 なくならないのか!?
なんにしてもクラス定義時に「ねっ!ほら!僕、終了処理いるから!scopeだから!ねっ!?」
ってできるなにかがほしいんだよな。
デストラクタとファイナライザみたいなものが欲しいと
>>683 英語の仕様はつい最近に確認で読み始めたばかりだから知らね。
>>686 この前scopeクラスなるものがあることを知ってちょっと驚いた。
仕様かなり読み込んでたのになー
tango
そういうクラスか何かを作ればいい
>>690 privateにしてgetプロパティを付ける。
mutable変数に値を設定してconstにcastする。
Dの標準ライブラリにリストのテンプレートとかないんですか?
配列のプロパティでvector相当の事出来るからなあ 欲しいなら自分で作るとか
std.container RedBlackTreeは使える
SListなかった?
dmdでリストファイル指定する時@付けないといけないのシェルの補完効かなくてめんどい
hoge.txtと一緒に@hoge.txtみたいな空のファイルを作っておけばいいんじゃね?
成功を掴み取る者は複雑さを避けるよね
class C; C* c = malloc(XXX * 3); // 自己管理のメモリを使用したい c[0] = new C; c[1] = new C; c[2] = new C; XXXは何にすれば良いですか?C.sizeofだと大きすぎるし・・
今は回避策で↓してます。 C** c = malloc((C*).sizeof * 3); c[0] = &(new C);
&(new C)が機能することにびっくりだ。 参照型はポインタなんで(void*).sizeofでいいんじゃないか?
C.sizeofは4とか8で固定じゃね?大きすぎるってどういうこと?
new CしたらGC rootに登録されてしまうのでは。 あと配列を独自に管理したいのかCを独自に管理したいのか。
中身を独自管理するときはstd.conv.emplaceを使うんだったかな
中身はemplaceで管理してるけど配列はどうやって管理すればいいのか わからなかったので今はダブルポインタで管理してます
std.container.Arrayとか?あれGCから切り離されてるよねたしか
Arrayは自前のメモリプール使えないしいちいちコピー発生するんだよなあ
ref constで受取った構造体変数はその関数内でメンバ変数を読み取り可っていう仕様は今後も変わらないよね? struct S{int member;} void f(ref const(S) s) { writeln(s.member); }
711 :
669 :2012/06/24(日) 02:49:10.70
挑発くそわろたw すごいなこれ。もうゲームとか作れそうw
>>711 ちゃんとポリゴンつながってて良い感じですなぁ〜。
格闘ゲームとかも行けそうな感じ。
linkerのマングリングされたメッセージを人間が分かるようにする方法ある? std.demangleあたり?
ハゲてるから大丈夫。
あほすぎ
BEARD.jpに改名したら
日本語の方のstd.demangleのサンプル古いな コンパイル通らなくなってる ってかそれ以前に"}"がひとつ少ないような・・・
WindowsのIDEでオススメはありますか?
724 :
デフォルトの名無しさん :2012/06/26(火) 00:22:13.79
vim
725 :
711 :2012/06/26(火) 01:32:07.77
>>725 おー。後は当たり判定に挙動つければミニゲームはできるね。
FCのマリオとかもいけそう。
struct VS {} で VS.sizeofが1になるような気がするんだけど気のせい? これ大丈夫?
配列にしたときに各要素にユニークアドレスを振るためのC言語の仕様 0になる言語もあるけど
浮動小数点の計算結果がnanになったら行番号吐いて落ちるようにできないかな 既存コードだから全箇所に何か入れるとかはなしの方向で
alias this+演算子オーバーロードかな うまくいくかどうかは知らぬ
731 :
711 :2012/06/27(水) 04:24:25.61
>>729 C言語からなら feenableexcept(FE_INVALID) ってやれば、ハードウェアで例外が起きるようになるから、
それでなんとかできるんじゃね?
>>731 うん、知ってた。
そんな俺は、スイッチングGPUでOpenGLが正常にロードされない問題で立ち往生中・・・orz
ノートで開発してて悪かったな!
734 :
731 :2012/06/27(水) 23:57:39.54
>>733 知ってたのぉー!?
で、昨日は .lib もリンクしないと動かないと思ってたけどそんなことはなかったぜ!なんでなんだぜ!
ただ DerelictSDL2Image.load() がこけてた理由は分かった。
Derelict3 のところで落とせる SDL2_Image.dll から libpng15-15.dll のシンボルを参照してて、
libpng15-15.dll もロードできる環境じゃないとこけて、さらに IMG_Init( IMG_INIT_PNG ); しか成功しないようになってた。
よくわからんけど上に貼った DLL に差し替えで動くと思いますんで Derelict3 利用される方はどうぞ。
だがこれでようやくメドがついたぜ!あとはシェーダ書いて、しかるべき箇所をテンプレートにして、インターフェイス整えてドキュメント書いたら完成や!
俺、この実装が終わったら
>>574 にmergeしてもらうんだ!
>スイッチングGPU
それなんかもうドライバ側の問題なんでは
>>734 まだだ、まだ終わらんよ
プログラム中でnewしてるところはメモリプールを使用してGCに優しいゲームを作れるようにするんだ・・・
ところでD言語って__func__的なものないのかい
ない ちょっと使いにくいけど適当にでっち上げてみた string funcNameOf(alias s)() @property { string prefix; // クラス名 static if (is(typeof(this))) prefix = "class " ~ typeof(this).stringof ~ "#"; return prefix ~ __traits(parent, s).stringof; } void main() { int dummy; // なにかローカルのシンボル writeln(funcNameOf!dummy); // "main()" }
Dの配列のsortって何ソート?
dmdの実装ではCの標準関数のqsort呼び出してる
>>739 __traits(parent, s)って引数のある関数の場合なんで失敗するの?
アンカミスった __traits(parent, s)って引数のある関数の場合なんで失敗するの?
>>741 __traits(parent, s) が関数呼び出しになっとる (ノ∀`) アチャー
ついでに大幅に改変
import std.stdio;
// mixin
enum string USE_FUNC = "int LOCAL_DUMMY; alias funcNameOf!LOCAL_DUMMY FUNC;";
// 処理本体
string funcNameOf(alias s)() @property {
import std.demangle;
return demangle(__traits(parent, s).mangleof); //stringof をやめた
}
// 使用例
void main() {
mixin(USE_FUNC);
writeln(FUNC);
// クラス
auto c = new C;
c.foo(0);
}
class C {
void foo(int a) {
mixin(USE_FUNC);
writeln(FUNC);
}
}
パーフェクツ!
744 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/06/30(土) 13:19:19.99
無理やり import std.conv; string SetAlign(int i)(string s) { return text("align(", i, "): ", s); } version(Win64) { enum const_align = 8; } else { enum const_align = 1; } mixin(SetAlign!const_align(q{ struct A { ubyte[3] ar; int a; int b; } }));
mixinは魔術やでえ
748 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/06/30(土) 20:44:54.29
D1でも動作するコードくれよ
D1はオワコン
win2kとwin64をサポートしたD2コンパイラ早く出てこないかな
みんなボットに反応するとか寂しい真似するなよ・・・
752 :
デフォルトの名無しさん :2012/06/30(土) 22:57:56.39
御意…
ふーん
Win64は動くかどうか知らん // 外枠 version(Win64) { align(8) mixin RawAligned!(); static assert(S.sizeof == 16); } else { align(1) mixin RawAligned!(); static assert(S.sizeof == 2); } // 定義の中身 /*mixin*/ template RawAligned() { // D2ならmixinをコメント解除 struct S { char c1, c2; } } // 使用 void main() { S s; }
static assertは消すか書き換えるかしてくり
756 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/01(日) 23:07:17.55
757 :
デフォルトの名無しさん :2012/07/01(日) 23:12:26.57
thanks a lot
どうでもいいがスレはあげんといてや
>>667 トップページがすごく…わかりにくいです
ユーザー登録無しでも使えるはず
ありゃ、しばらく見ない間に、 writeln({}) の出力が void delegate() じゃなくなってら 文字数少なくて好きだったのに
functionになったからアドレス表示するようになったのか この機能いろいろ変わるんだな
2.058からだっけか、局所変数を参照するかしないかで delegateかfunctionかが推論されるようになった
ヒィッ
>>764 うっかりお隣も一緒に書き換えちゃった(・ω<)
安心した
*.diファイルの中身まで-propertyでチェックかけなくったっていいじゃないか!ファック!
これがビルドできないのはバグであると高らかに主張したい class Foo { typeof(this) clone() const { return new typeof(this)(); } }
- return new typeof(this)(); + return new typeof(return)();
>>768 clone関数の外では、typeof(this)は常にconstとか付かない、Fooを返す
clone関数の中では、typeof(this)はconstを考慮した、const(Foo)を返す
→const(Foo)からFooへの変換は出来ないのでコンパイル失敗する
何もおかしなことは無い
>clone関数の中では、typeof(this)はconstを考慮した、const(Foo)を返す ここんところがどうも納得いかない どうしてそういう仕様なんだろ?
何のためにconstメソッド使ってんだよ・・・
>>771 どっちが納得できない?
1. clone関数の戻り型typeof(this)がconst(foo)ではなくFooになること
2. clone関数の中でのtyoeof(this)がFooではなくconst(Foo)になること
前者ならまだ判らなくもないけど
>>773 2.
typeof(this)はクラスの中なら普通にクラスの型を表すものじゃないの、と
というかインスタンスが存在しない場面でも使える
typeof(this)自体が納得いかないと気づいてしまったのでもういいや
雛形にインスタンスなんてあらへん
リリース直前の駆け込みで入れていい内容じゃないだろ…
オラなんだかワクワクしてきたぞ
キタワァ
780 :
デフォルトの名無しさん :2012/07/10(火) 00:10:16.04
構造体のopOpAssignどーやるの?
ごめんあげちった
opOpAssignがassignされたりされなかったりする文脈依存のバグ?やめて欲しい・・・
typoじゃね
そういうときはとりあえず phobosをのぞく
ん?ちゃんと動かないのだけじゃなくて?
>>785 の例だと2.059ではちゃんと動いてa.n_は11になるんだけど
それなりにでかいソースの中でうまく動いてない箇所で確認した動作は
opOpAssignの中でthisが別の領域指してる感じ
opOpAssignの外で+=の左辺のアドレスをみてみたらthisと一致してなかった
+=の左辺の変数名を変えたら意図したとおり動作しました ↓こんな構成なんだけどスコープがかぶってない同名の変数があっても良いよね? 変数名を変えただけで動作変わるって事はスコープがらみの不具合? void f(){ __for(){ ____A a; ____a+=1*v; __} __for(){ ____A a; ____a+=1*v; __} }
VisualDの変数内容表示がおかしかっただけだった・・・ スレ汚しすまぬ
エラーをその都度修正して使っている
>>793 ですよねー
>>794 もう試したくはないが、
wxd0.16 wxWidgets2.8.12 or 2.8.9 or 2.9.3 DMD1074/2059
は一発では通らなかった上、それより古いものを含めた組み合わせの大半が
どのバージョンのDMDに合わせて作ってあるのか(どう修正すればいいのか)が判らない
随一修正するの疲れたから、一発で通る上記の組み合わせに逃げたのが今の惨状
正解 っていうか D はオワコン
>>796 README に一言
どのバージョンの dmd と wxWidgets でコンパイルしたかだけでも書いてあるだけでも良いと思うの
暇な人柱に実験させるのは止めた方が良い
どのみち 2.060 でクラスベースのライブラリは全滅するんだけどな
え?
githubに移行して更新もされてるから使えるかなと思ったら使えなかったんだよな、wxD 頑張って使ってる人いたんだな…
=>が実装されてunaryFunとbinaryFun涙目だけどこのテンプレート消える予定あるん?
803 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/14(土) 12:30:41.34
日本語版のCHMがダウンロードできない。。。
あげんな
CHMとか何処の田舎なの
HLPファイルのほうがいい
//std.parallelismがなんかおかしい。 import std.stdio,std.datetime,std.range,std.algorithm,std.parallelism,std.array; void main(){ long sum=0; foreach(i;0..10000)sum+=i; writeln("sum:",sum);//49995000 auto a=iota(0,10000).array(); long psum=0; psum=taskPool.reduce!"a + b"(a); writeln("psum:",psum);//49995000 long sum2=0; foreach(i;0..100000000)sum2+=i; writeln("sum2:",sum2);//4999999950000000 auto a2=iota(0,100000000).array(); long psum2=0; psum2=taskPool.reduce!"a + b"(a2); writeln("psum2:",psum2);//887459712<-? }
>>807 たぶんtaskPool.reduceの結果がintで計算されているのでオーバーフローしている
iotaとtaskPool.reduceの両方がバグをもってるっぽい。
さあ、バグレポ投稿の時間だ。バグレポしないと誰も直してくれないよ?
reduceの戻り値の型がtypeof(a2[0])だからだね でも直すのめんどくね? これとかもろintだし writeln(typeid(taskPool.reduce!"a + b"(a2))); 一応汚い回避策もなくもない auto a2=iota(0,100000000).map!"a * 1L".array();
CommonType使ってあげてください・・
普通にreduceにlong型の初期値与えればいいんじゃないの?あんまり知らないけど
せやな psum2=taskPool.reduce!"a + b"(0L, a2);
813 :
807 :2012/07/15(日) 19:40:33.91
>>808-812 みんなありがとう.。
>>812 でちゃんと計算できた。
自動でオーバーフローを判断してくれないのはまあそんなもんかなと思うので今度から型には気をつけることにする。
Haskellとかscalaとかで最近よく聞く圏論的にも入力と出力は同じ型なのが正しいっていう理解でいいのかな
ゼロ除算で例外出るみたいにオーバーフローで例外出るようにしてもらおうぜ!
やめろ
D言語には何か超えるべき大きな壁があるんだと思う そこを超えられればとても優良な言語になれてるはずなんだ
feenableexcept(3)をラップしたインタフェースがあればいいんだよ
VisualD以外で、まともにデバッガと連携取れるIDEってありますか? DDTはデバッガをサポートしてないみたいだし、D-IDEはステップイン中に時々例外吐いて落ちてしまいます。
Win のデバッガについて知り尽くした俺に言わせてもらえば な い
どこでInvalidMemoryOperationErrorが出てるかわかる方法ない?
IDEはVisualDがアタマ三つくらい抜けてる印象
druntime をデバッグビルドしてデバッガでブレーク ちなみに前に見たことがあるのは DFLのタイマーオブジェクトの開放漏れ
カバレッジって1ファイルじゃないと出来ない? 50ファイルくらいのソースから作ってるexeなんだけど実行してもカバレッジ結果のlstファイルができない・・
どうやって make してるか知らんけどちゃんとできる だがどうやってカバレッジでエラーの場所を突き止めるかはわかんね
ああ、なるほど-releaseオプションつけちゃだめだよねそりゃ
ddocって軽視されてるの? 拾ってきたソースコードをとりあえず-Dでhtml出してみても全く読ませる気が感じられないんだけど
>>830 そういえばmqoローダー使わせてもらおうと思ってちょっといじってたら、テクスチャファイルを一緒に使おうとすると落ちるから直してみたよ!
loadMQOCellの文字列マッチの部分を最小マッチにすれば直るかも(Material名のパースの時、構文乗り越えてテスクチャ文字列用のダブルクォートまで読み込んじゃう)。
既に直してたらスルーしてください!
>>831 ありがとうございます!直してみます!何しろDさんでしかテストしてないもんで<(;^o^)
列挙体のメンバーの指定が長たらしくなる。with構文があれば良いのに。
May the D be with you! ↓グーグル先生訳 Dは、あなたと一緒かもしれません! ワロタ
何もおかしくない
Dがあなたの伴達共でありますように。
D言語と秋の空か
D言語 負けても知らぬ 厚顔よ エロ林・エッチャー
D言語 ナウい腰つき D・V・D エロ川
D言語 壊れて対応 脳汁が!! -M戦士
お前らの開発環境教えて
メモ帳
Terapad+DMD+.bat
サクラエディタ + dmd + mingw32-make エディタはGinnieに変えようか迷ってる。 気が向いた時はVisual Dを使ったりもする。
やっぱみんなエディタなんだな
scintilla+dmd+ddbg+IDEもどき
notepad++でなんとかなる
標準環境だけでビルドしたいからDigitalMarsのmake使ってたんだけど機能が腐りすぎている ある日気づいた。ビルドスクリプト書いてrdmdでいいじゃん、と コード書くのはサクラエディタだなぁ、例に漏れず
びむびむ
import std.stdio; class C { void foo() { writeln("not const"); } const void bar(void delegate() dlg) { dlg(); } const void hoge() { bar(&foo); } } void main() { auto c = cast(const) new C; c.hoge(); // 非constメソッドのfooを呼び出す } うーん、こんなclass作るなよってことなんだろうけど…
その動作なにか不満あるの?
import std.io;じゃ駄目なんですか
そもそもconstじゃないメソッドのdelegateをconstなインスタンスから取れるというのがおかしくね? import std.stdio; class Int { int value = 0; void set(int i) { value = i; } } void main() { auto c = cast(immutable) new Int; // c.set(42); // 当然エラー (&c.set)(42); // エラーにならない! writeln(c.value); // "42"を出力 } やりたい放題じゃね?
ヤリ vs 砲台
>>856 一方的ですなー。意外とずれてないかも。
投げやり ヤリが勝つわ!
2008年か…古生代だな
test.d(18): Error: cannot implicitly convert expression (__lambda1) of type void delegate() @system to void function() ちゃんとエラーになるが
コンパイルエラーになんなくね?dmd2.059@win
864 :
862 :2012/07/21(土) 17:27:46.59
2.058だった・・・ 更新来たときはさっさと更新しなきゃってなんで後退しとんねん!
笑ったw
コンパイルエラーにならずに実行時エラーになるな @win functionに変換する方法もわからんけど
サンクとかグローバル変数でも使わない限りはdelegate -> functionは無理じゃないかな
あ、this使ったらdelegateになっちゃうんか・・・
>>870 なるほど。
テンプレートって、インスタンス化のたびに新しいグローバル領域が確保されるのね。
パラメタが同じだったら同じ領域が使われるけど、ID1とID2でちょっとだけ防いでる
>>872 その発想はなかったw
ある意味テンプレートの無駄な部分に助けられてるわけかw
>>870 何これすごい
D言語のポテンシャルは失禁モノだぜ・・・
日本人コミッタの仕業かと思いきやジョナさんらしい
コマッタ奴だな
普通に買って持ってるCDの曲の名前がここにあるとは思わんかったw
rangeじゃないremoveだ 最初と最後しか合ってないとかケブンリッジか
釣られるもんかっ
removeってoffsetを渡すか述語で検知するかじゃないの? それやりたいならcountUntil使うんじゃね
a.remove!(e=>e=="a")(); もしかして:ドキュメントに書かれてない
std.file か何かに ファイル削除の remove() があって 衝突するのを思い出した
joinとかはよくなったけどまだまだあるねぇ
889 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 13:00:45.71
コンパイルにはGNU makeが必要。
891 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 14:23:21.56
..\wonders\prsht.d(850): Error: undefined identifier LPPROPSHEETPAGEA, did you m ean alias LPPROPSHEETPAGE? ..\wonders\prsht.d(851): Error: undefined identifier LPPROPSHEETPAGEW, did you m ean alias LPPROPSHEETPAGE? ..\wonders\sqlext.d(361): Error: undefined identifier SQL_TYPE_DATE, did you mea n variable SQL_C_TYPE_DATE? ..\wonders\sqlext.d(362): Error: undefined identifier SQL_TYPE_TIME, did you mea n variable SQL_C_TYPE_TIME? ..\wonders\sqlext.d(363): Error: undefined identifier SQL_TYPE_TIMESTAMP, did yo u mean variable SQL_C_TYPE_TIMESTAMP?
ただのundefined identifierじゃん? GREPかけたけど定義部ないじゃん
>>891 そこまでヒント出ててわからないとこの先苦労するぞ。
894 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 14:34:32.33
>>892 LPPROPSHEETPAGEAとLPPROPSHEETPAGEWは、prsht.d(267〜295)で
定義されているはず。
定義されているはずなのに、未定義。何かがおかしいんだ。。。
static if内の前方参照は不可ってことかな ifの中で式使うし当然といえばそうか?バグっぽいけど
具体的にどういう風に直せばいい?
それ2.059でコンパイルしてない? 2.059のimport周りでおかしくなって2.058に戻した記憶がある バグか仕様変更かは知らん
899 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 19:54:45.92
struct PROPSHEETPAGEA_V1 { LPFNPSPCALLBACKA pfnCallback; } alias LPPROPSHEETPAGEA_V1 LPPROPSHEETPAGEA; alias UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA; いやな作りだな 並び順を変えてみて、それでもダメなら・・・う〜んどうする?
目が痛い
おっと、すまん… 1行足りなかったわw struct PROPSHEETPAGEA_V1 { LPFNPSPCALLBACKA pfnCallback; } alias PROPSHEETPAGEA_V1* LPPROPSHEETPAGEA_V1; alias LPPROPSHEETPAGEA_V1 LPPROPSHEETPAGEA; alias UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA;
おまえらbotには優しくしなくていいぞ
904 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/24(火) 21:17:30.42
>>900 有り難う救世主。引数の型をvoid*にすることにした。
sqlextのエラーの原因がわからん。
>>903 いつも突っかかってるけど、何が気に入らないん?
自作のコードからテンプレート極力排除したらアホみたいにコンパイル速くなった 今は無性にgenericsが欲しい
>>906 実行時例外出まくるとかやったらややね。
>>905 1.こうやってほぼ丸投げで協力させて形になったら有料でソースを公開するということを数ヶ月前にやっていること
2.「ボット」がネガティブ発言に対してボットに反応するなと言うための保険だということ
2つとも名無しでもみんなやってそうだけど、思ったよりそうでもないのかな?
同定可能な状態でふざけた事をすりゃそりゃ嫌がられて当たり前
>>908 なるほど、嫌いになる人はなりそうだな。
912 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/25(水) 12:43:38.42
>>908 丸投げじゃありません。90%以上のコードは自分で書きました。
MZCは有料化の話もありましたが、現在も実質無料です。
ボットは、機械のように早いという意味で、ある人から授かった私の称号です。
913 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/25(水) 13:06:37.05
プロパティシート関連を修正・自己解決。
https://dl.dropbox.com/sh/yeu7fx8tgebf25x/CJupc40pKq/wonders.zip?dl=1 次のエラーを解決してくれたら、WebMoney900円あげますよ!!!
sqlext.d(361): Error: undefined identifier SQL_TYPE_DATE, did you mean variable
SQL_C_TYPE_DATE?
sqlext.d(362): Error: undefined identifier SQL_TYPE_TIME, did you mean variable
SQL_C_TYPE_TIME?
sqlext.d(363): Error: undefined identifier SQL_TYPE_TIMESTAMP, did you mean vari
able SQL_C_TYPE_TIMESTAMP?
仲良くしようぜ ∩__∩ ∩__∩ (’ x ’) (’ x ’) ⊂| ~ |⊃⊂| ~ |⊃ ∪~∪ ∪~∪
915 :
デフォルトの名無しさん :2012/07/25(水) 14:34:48.70
R4i gold 3ds マジコン R4i gold 3ds 通販 R4i gold 3ds 販売
http://www.r4-tt.com/ ● 全世界で初めて3DSホストコンピュータをサポートする。
● 全世界で初めてDSiホストコンピュータシステムをV1.41に昇進することをサポートする。
● 全言語システムのDSiホストコンピュータをサポートし、ヨーロッパ産のは自由に選択することができる。
● DSL/DSi/LL/XLすべてのホストコンピュータシステムをサポートする。
● 標準的なTFカードと最新SDHC規格のTFカードをサポートし、最大容量は32GB(256Gb)。
● スマーターキー機能搭載
おーい、誰もいないのかぁ???
917 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/26(木) 14:49:50.46
たすけてけろーーー
Makefileがおかしいに一票。
botの頭がおかしいに3票
質問です。 immutable(char)[] s = "first"; s = "second"; これは、s自体はimmutableじゃないのでコンパイル通りますよね。 イメージとしてはこれと同じ感じで、 immutable(Test) a = new Test(); a = new Test(); みたいなことがやりたいんですが、どうにかしてできるでしょうか つまり、immutableなオブジェクトへのmutableな参照が欲しいということです
Rebindableってのがある
>>922 ありがとうございます、ちょうどこんなのです。
いまさらだけど
>>375-385 あたりの構造体のthis(this)が呼ばれない話題ってNRVOだったのかも
static assert(is(void function() == function)); が false になるんですが、自分がなにか勘違いしているんでしょうか…
void function() == void function() とか? 俺こう言うの全然分からない
function てポインタじゃね
static assert(is(void delegate() == delegate)); は trueになるんだけど…
あと、static assert(is(typeof((){return 0;}) == delegate)); ってやったら、
Error: static assert (is(int function() pure nothrow @safe == delegate)) is false
ってなるんだけど、無名関数ってデフォルトでdelegateじゃないの?
ちなみに static assert(is(typeof((){return 0;}) == function)); もエラーになる(
>>925 に書いた通り)
is(x == function)の動きが謎すぎるww ちょっと試したけどむしろどうすればtrueになるのかすらわからんww
void func() {} void function() fpvar = &func; static assert(is(func == function)); //だめ static assert(is(fpvar == function)); //だめ static assert(is(typeof(fpvar) == function)); //だめ static assert(is(typeof(func) == function)); //OK 狭ッッ
932 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/28(土) 18:22:40.54
AF_MAXなんて定義されてねぇよ CF_MAXの間違いと違うか?
934 :
デフォルトの名無しさん :2012/07/28(土) 18:36:42.91
935 :
デフォルトの名無しさん :2012/07/28(土) 18:45:59.03
アナルファックの感度を最大にせず 乳首ファックの感度を最大にしようず
ニブルファック
ニッポォ〜。
938 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/07/28(土) 21:58:38.99
やっぱりコンパイラのバグかなぁ?
2.060まだかなー
頭のバグや
>>925 void function() は関数ポインタ型。is(...==function)は関数型のときのみtrueになる
931の例を使うと
void func() {}
void function() fpvar = &func;
static assert(is(func == function)); //だめ
→funcは関数そのもの(=シンボル)なのでそもそも型ではない
static assert(is(fpvar == function)); //だめ
→fpvarは変数なのでそもそも型ではない
static assert(is(typeof(fpvar) == function)); //だめ
→typeof(fpbar)は関数ポインタ型で、関数型ではない
static assert(is(typeof(func) == function)); //OK
→関数funcの型をtypeofで取り出している=関数型なのでOK
たぶん混乱しているのは void function() fp; こう書いたときfpの型は「関数ポインタ型」になるが、is式内では==functionが 「関数型かどうか」の判定になる点だと思う。 関数funcがあるとき typeof(func)で取れるのが関数型、is(...==function)で真になる &funcという式から取れるのが 1.関数ポインタ auto fp = &func; static if (is(typeof(fp) FP : F*, F)) { // typeof(fp)を名前FPに割り当て、そこからFを切り出す static assert(is(F == function)); // Fは関数型 pragma(msg, F); // "void()"と表示される } 2.デリゲート auto dg = &obj.func; static if (is(typeof(dg) DG == delegate)) { // ==delegateはデリゲート型かどうかを判定する // デリゲート型DGから関数型を取るにはstd.traits.FunctionTypeOfを使う }
「関数型」ってis( == function)以外の場所で全く使わないよな・・
?
>>943 ありがとう。実はいつBetaが取れるのかなーという気持ちでした
手許のライブラリがちょっとの修正で動いたから例の外された崩壊的変更以外はおとなしめな気分
WinXP のスタックトレースが改善されるから 個人的にはとっとと出してほしい Win64ビットは年内にできるかな〜?
D3が来るとしたらD1のサポートが終わった来年以降かー
>>932 winsock2にAF_MAXが定義されてないみたいだけど。
自己解決しました。
そろそろ次スレの季節。 せっかくなのでテンプレの改良をしてみた。 なにか意見があったら言ってくれ。
952 :
>>1 :2012/07/29(日) 16:21:06.65
友の会のうrlの最後に/が欲しいね
何か違いがあるんか?
違いが無いなら他にあわせたほうが一貫性があって素敵な男性なの
ヒント:WebMoneyは奴の考えた都合の良いニンジン 全ては自己解決でおしまい
Bitcoinなら手伝っちゃる
>>942 ありがとうございます
関数型という独立した型があることを認識してませんでした…
(Dでは関数型=関数ポインタ型なんだと何故か思い込んでいた)
思い込むっつーか・・・ バグだろ明らかに。 だれが関数そのものの判定なんかするんだと。
つ aliasパラメータ
ここまでテンプレ
IDEとかライブラリは更新しなくなったり開発先変わったりがよくあるんで、 テンプレ入れるのやめて友の会あたりをちゃんと更新しつつ、 そっちの該当ページのURL貼ったほうが混乱が減るんじゃないかなっていま思った。
Wiki4Dもちゃんとメンテされてるのな
>>965 だからって、それを全く入れないとするとテンプレの用を為さなくなってくるわけでw
まあ、その時がきたら入れ替えればよし。
>>961 関数型があるから、そこから関数の戻り型とか引数の型タプルとかが取れる
判定する理由ってなんだ?判定したいから判定するんじゃい
結局7月中には間に合わなかったか
調理師の資格を目指しているのですが 食材を選ぶ時に油の量を減らす場合の
デキストリン
974 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/02(木) 14:03:35.42
pragmaでライブラリをリンクできないのはなぜ?
お前が差し込んでるのはアナルプラグだろうが
DMD 2.060キター
978 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 12:59:35.48
979 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 13:06:23.61
D1でコンパイルすると次のようなエラーが出てくる。 _error_ 00A428D8 Assertion failure: '0' on line 1434 in file 'expression.c' ぐぐってもわからん。
980 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/03(金) 14:02:08.12
dsource.orgに登録してもいいかな?
えー
ことわる
bindings/WindowsAPIって既にあるけどさ、そっちはなんかまずいの?コンパイルできなくなってたりする?
>>983 Bindingsの方は、いろいろ間違いや不足する点が多かったから、
ハイスペックを目指したつもり。
2.060・・手元では修正が不要だったよ(´・ω・`)
顔文字間違っ……間違ってないのか、そうか。
よく教育されているようだ
こっちじゃalignの仕様変更でOPTLINKが爆死したり永遠に停止したりしたよ(゚∀゚)
dmd main.d -L-lphobos2 -L-lcurl でcurl使えた。(Ubuntu)
-L-lphobos2はdmd.confに書いとくといいよ
D言語で2Dのゲームを作りたいと思っているのですが、 DirectX、OpenGL、SDLのどれがお勧めですか? 多機能じゃなくていいので、初心者向けのシンプルなやつがいいです。
そのような質問をする人にはD言語はオススメできません
>>992 dmd.confのDFLAGSに書いてみた
$ dmd -v main.d -L-lcurl | tail -2
gcc main.o -o main -m32 -lcurl -L/usr/lib/i386-linux-gnu -L/usr/lib/x86_64-linux-gnu -Xlinker --no-warn-search-mismatch -Xlinker --export-dynamic -lphobos2 -lphobos2 -lpthread -lm -lrt
--- errorlevel 1
curlがphobosより前にあるとエラー起こすっぽい
undefined reference to `curl_global_init'
DirectXとOpenGLを並べるのはいいけどSDLは根本的に違うものだと思う SDL+OpenGLとかならわかる
>>994 D言語自体が初心者向けではないか・・・
まあ、とりあえず適当に選んでやってみます。
>>993 SDLが一番シンプルだけど、D言語(C/C++も)でゲーム作るのは簡単に挫折できるなw
ただゲーム作りたいだけなら、C#+XNAが一番簡単かもしれない。
Win限定だけどJITコンパイルでそれなりの速さだし環境整ってるし。
>>996 SDLは別物なんですね。
>>998 C++もD言語もコンソールなら少々経験があるので、とりあえずやってみたいと思います。
DirectXとOpenGLならOpenGLですかねやっぱり。
これでいこうと思います。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。