問題タブ [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.
d - 関数ポインタを簡単に初期化する方法は?
Runtime.loadLibrary
と を使用して Win32 API 関数をロードしたいと考えていますGetProcAddress(...)
。使用mixin
:
この方法で (クラス コンストラクターで) インスタンス化できます。
ただし、別の機能に再度使用する場合:
コンパイラは文句を言います:
要点がわかりません。最初のインスタンス化が作成されGetProcA
、それを再度使用できない場合、ここでどのように役立ちますか?
d - ref/out関数ポインタを関数に渡す方法は?
関数ポインタをインスタンス化したい:
しかし、コンパイラは関数型変数の使用を許可しません(out function f)
。使ってみたのですObject
がどうやら(どうして??)でfunction
はないようです。では、 /変数としてObject
渡すにはどうすればよいですか( /を使用しないと、コードがわかりにくくなり、多くのステートメントを追加する必要があります...) ?function
ref
out
template
mixin
typeof
parsing - D でファイルを解析する
私は D が初めてで、次の形式の生物学的ファイルを解析したいと考えています。
「ヘッダー」name1、name2、name3 を対応する「シーケンス」データ、..acgcg... などでキャプチャできるようにします。
今、私はこれを持っていますが、行ごとに繰り返すだけです。
各項目がファイル内のエントリに対応する連想配列を作成できるように、ヘッダーとシーケンス データを抽出する良い方法を知りたいです。
d - Dのchar[]配列から空白文字を削除します
Dのchar[]から空白を削除するための推奨される方法は何ですか。たとえば、私が持っているdmd2.057を使用して
コンパイル時に、これはこのエラーを生成します:
いくつかのグーグル検索を行ったところ、同様のエラーがバグとして報告され、 2011年6月に提出されたことがわかりましたが、それが同じものを指しているのか、別の問題を指しているのかわかりません。
一般に、文字列から特定の文字を削除し、前の文字配列の文字の順序を維持するために推奨されるアプローチは何ですか?
この場合、
空白文字を削除した後
d - struct toubyte[]またはubyte[]to struct for d language
ubyte []
構造体への、または構造体へのD言語での構造体の実装方法、ubyte []
兄弟がこの質問に答えるのを手伝ってください、ありがとう!
構造体にまたはが含まれている場合、string
またはchar []
何をすべきか?
たとえば、次のような構造です。
ソケット内の私のアプリケーションに注意してください!
d - D で「パッケージ」メンバー関数をオーバーライドする
package
クラスに保護属性を持つメンバー関数があり、それを同じパッケージの別のモジュールのサブクラスでオーバーライドしたいと考えています。dmd コンパイラは、非仮想関数をオーバーライドできないと叫びます。関数を作成するとpublic
、実際に機能します。
パッケージ関数が仮想ではないのはなぜですか?
コード例:
d - D 言語で OpenGL 3 を使用して単純な四角形をレンダリングする
画面に単純な三角形のセットを表示することができないので、気が狂いそうです。
Dプログラミング言語の遺棄されたバインディングを使用して、OpenGL3(非推奨の固定パイプラインなし)を使用しています。
次のプログラムのエラーを見つけられますか? それは問題なくコンパイルされ、OpenGL/GLSL エラーはスローされません。設定したクリアカラーの空白の画面が表示されるだけです。
d - d言語スレッド
core.thread
Dで使用してハンドルを適切に渡す方法は? 私はこのようにしようとしましたが、ハンドルが変更され、理由がわかりません:
templates - テンプレート化された関数を引数としてDのテンプレート化された関数に送信する
sort
Dの関数をテンプレート引数として関数に送信しようとしていpipe
ます。sort
テンプレート引数なし
で使用すると、次のように機能します。
ただし、sort
テンプレート引数を使用しようとすると、次のようになります。
エラーが発生します-main.d(5): Error: template instance sort!("b<a") sort!("b<a") does not match template declaration sort(alias less = "a < b",SwapStrategy ss = SwapStrategy.unstable,Range)
なぜそれが起こるのですか?sort!"b<a"
それ自体で動作し、と同じ引数と戻り型を持っているsort
のに、なぜpipe
受け入れるのに受け入れsort
ないのsort!"b<a"
ですか?そして、私がやろうとしていることの正しい構文はありますか?
アップデート
sort
OK、関数をラップしようとしました。次のコードが機能します。
では、なぜ元のバージョンが機能しないのですか?これは、余分なテンプレートパラメータsort
が必要なためですか?
macos - Derelict と OpenGL を使用する場合の「Segmentation fault: 11」
これをOSX 10.7で実行しようとしています:
正常にコンパイルされますが、実行しようとすると次のようになります。
スレッド出力は次のとおりです。
Derelict とsimple.d
32 ビット モード ( -m32
) の両方をコンパイルしようとすると、代わりに次の出力が得られます。
スレッド出力:
gl...
のような他の機能を試してみましたがglClearColor()
、同じ結果が得られます。