問題タブ [dmd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
operator-overloading - Dでのエレガントな演算子のオーバーロード
しばらくの間、Dの演算子のオーバーロードの方向について混乱していましたが、今ではそれが美しいシステムであることに気付きました...コアタイプ(int、floatなど)でのみ機能する場合。次のコードを検討してください。
これは、1つのメソッドですべての+ =、-=、*=などの演算子をオーバーロードするので機能する場合は美しいコードになります。ただし、ご覧のとおり、そのままでは機能しません。テンプレートを使用してソリューションを作成しました(Dが大好きです):
これは問題ありません。すべてを「社内」に保管したいのは私だけです。テンプレートを使用せずにこれを機能させる方法はありますか?パフォーマンスの低下はなく、これを行う必要がある状況でモジュールをインポートするのは難しくないので、私はここで気難しいことを知っています。内蔵されているのかと思っていて、何かを見落としています。
d - dfl_debug.libが見つかりません
DFL / Tangoライブラリを使用してDのFormsを使用して最初のアプリケーションをコンパイルしようとしていますが、コンパイラの最初の試みは次のように述べていますDFL lib files not found
。
次に、ライブラリをコンパイルしようとしましたが、次のエラーが発生しました。
DMD compiler
、バージョンを使用していv2.055
ます。
どうすれば修正できますか?
d - dmdリンカー(OPTLINK)はエラー42を出します:externを使用するとシンボルが未定義になります
次の2つのファイルをリンクすると、リンクエラーが発生します。
広告:
bd:
私が得るエラーは次のとおりです。
なにが問題ですか ?
__ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ _
編集:これはそれを行う正しい方法です:
広告:
bd:
そのコードは、digitalmars.comサイトの初心者向けの優れたDフォーラムでJoshuaReuschから提供されました。
winapi - エレガントなクラスメンバーウィンドウ関数を作成する方法はありますか?
Win32 API の Window-Procedure は、クラス オブジェクト ( this
) パラメータを受け取ることができないため、静的 \ グローバル関数でなければなりません。もちろん、hWnd->object ディクショナリなどの回避策を使用できます。
Dには、オブジェクトごとに小さなメンバー関数のコピーを作成する(オブジェクトの実際のハンドラーを呼び出す)、または割り当てることができる無名関数WNDCLASS.lpfnWndProc
(無名関数があることは知っていますが、使用できません)など、エレガントに解決する方法があるのだろうかそれらのextern(Windows)
プロパティ)?
私はこのようなことをすることができます:
(registration\creation\msg-loopは省略…)
Events() が起動していないようです...何か不足していますか?
operator-overloading - D opBinary()()オーバーロードのバグ?
単純なVector構造体でopBinaryをオーバーロードしようとすると、奇妙で無意味なエラーが発生します。
私が得るエラーは単純です: "opBinary(string op)"。行番号も、何もありません。これは明らかに私に多くのことを続けることを与えません。この状況に対処する別の方法はありますか?これは既知のバグですか?
Windows7でDMD2.057を使用しています。Linuxではまだテストしていません。
[編集]読みやすさのためにコードを少しクリーンアップしました。
monodevelop - Mono-D DMD コンパイラの問題
コード補完や単純なリファクタリングなどの機能により、Mono-D で D を作成することは、Visual Studio で C# を作成するのとほぼ同じくらい生産的です。Linux ではすべてがうまく機能します。Mono Development をインストールし、Mono-D リポジトリを追加してビルドするだけです。しかし、Windows では、Hello World をコンパイルすることさえできません。
最初は、DMD が Phobos を見つけられないように見えますが、Getting Started ページの指示に従った後、 Object.diファイルに 21 個のエラーが表示されます。「')' を期待しているときに 'char' が見つかりました」や「不変宣言子の識別子がありません」などのエラー。
Windows 7 64ビットでMono Develop 2.8.5を使用しています。
どうすればこれを機能させることができるか、誰にも手がかりがありますか?
benchmarking - D performance: union vs @property
I'm in the process of porting, enhancing, and D-atizing our reign SDK from C# to D. Currently working on the Vector2 math module.
Will there be any performance difference between the two structs below? My benchmarks show identical performance, but I'd like to gain a bit of expert insight :)
Obviously I'd like to use the unions for syntactical simplicity. But is there any unforeseen pitfalls with using them? I'm unfamiliar with their low-level details.
On a side note, I'm adding in vector property syntax similar to HLSL/GLSL, e.g., vec1.yxz += vec2.xyz; There's... no.. possible way to do that with unions instead of @property is there?
windows-7 - Win7 と dmd (D2) で gtkD を使用するには?
ダウンロードして、いくつかのディレクトリgtkD-1.5.1
に解凍しました。gtkD
次に何をしますか?それをコンパイルしていくつかのライブラリにリンクする必要があるのか 、それともコード内でリンクする必要があるのか わかりません。
編集: (@dsimcha)
dsss build
gtkD main dirのコマンドは私にこれを与えました:
libが作成されていませんか?
d - mixinでエラーが発生する
http://www.d-programming-language.org/mixin.htmlの例を以下に示します。
「生成するもの:」(サイトによると):
エラーが発生します:
Error: template instance GenStruct!("Foo","bar") GenStruct!("Foo","bar") does not match template declaration GenStruct(char[] Name,char[] M1)
それは私のものですか、それとも彼らのバグですか?
benchmarking - DはVector(T)タイプを暗黙的にキャストします
コードフラグメントの比較A:
Bと:
私のベンチマーク(DMD、Win7)では、AはBよりも約50ms高速です。これが理由は何ですか?Aの方が速い場合はそれを使用したいのですが、何を試しても、Vector2!doubleを暗黙的にVector2!floatにキャストすることはできません。これらのタイプを暗黙的にキャストする方法について何かアイデアはありますか?それとも、暗黙のうちにキャストしてはいけない理由についての議論はありますか?
これらのコンパイラでこのベンチマークを実行するようにGDCとLDCを設定していますが、これがDMDのみの最適化の問題であるかどうかを誰かが知っていますか?