d2

    12

    2答えて

    実際に面白い会議がD-Specific Design Patternsについて行われ、Dコミュニティでは、効果的なコーディングテクニックを扱うための出発点になると思っている人もいました。他の人たちは、あまりにも多くの人々が多くの経験を持っていないので、あまりにも早いと主張します。そのような本の著者は、効果の概念について偏見的/個人的な感謝を得るでしょう。 SOはよりインタラクティブなメディアです(

    6

    1答えて

    私は、与えられたシンボルが関数テンプレートであるかどうかを確かめる方法を考え出しています。次 import std.traits: isSomeFunction; auto ref identity(T)(auto ref T t) { return t; } static assert(isSomeFunction!identity); はidentityとして失敗し、それがインスタ

    7

    2答えて

    私は@propertyアウトを離れるとき struct PropertyTest { @property int x() { return val; } @property void x(int newVal) { val = newVal; } void test() { int j; j = x; x = 5;

    5

    1答えて

    私は、アライメントはまだ1の代わり8である私に言って、失敗したこの struct Foo(T) { align(8) void[T.sizeof] data; } しかし static assert(Foo!(int).data.alignof == 8); を試してみました。 これはなぜですか、どのように修正するのですか?2の累乗(8だけではない)の任意の位置合わせで動作す

    5

    2答えて

    string reverse(string str) pure nothrow { string reverse_impl(string temp, string str) pure nothrow { if (str.length == 0) { return temp; } else {

    0

    1答えて

    現在、不変であると文書化されていて、オブジェクトを変更するメソッドやメソッドを持っていない多くの値オブジェクトを持つ大きなシステムがあります。コードのいくつかの部分を書き直しながら、私は、クラスを不変であると文書化するだけでなく、不変であると宣言することが良い練習になると考えました。 ネストされたオブジェクトと値オブジェクトは、次のようになります。 immutable class Nested

    6

    2答えて

    私はDが新しく、コンパイル時にチェックされたダックタイピングが便利かどうかは疑問でした。 たとえば、一連のメソッドを定義し、それらのメソッドを関数に渡す型に対して定義する必要があります。これは、D型のinterfaceと少し異なります。なぜなら、「型XはインタフェースYを実装する」と宣言する必要がないからです。メソッドが見つかるか、コンパイルが失敗します。また、これが構造体やクラスだけでなく、どの

    5

    2答えて

    Dでラインを範囲として読み取る方法は? Dに範囲があることは知っていますが、この概念を使用して文字列の各文字を単純に反復する方法は不思議です。私が後だものを表示するには 、移動中に同様のコードは次のとおりです。 for _, someChar := range someString { // Do something }

    7

    1答えて

    異なる構造体の(数値)フィールドをインクリメントする単一のテンプレート関数を記述できますか?例えば:私もタプルを受け入れる関数テンプレートを書いて試してみましたが、タプルは常に展開され、正しいテンプレートに一致するから、コンパイラを防止する T update(T, A)(T t, A a) if (is(T == struct)) { auto vals = t.tupleof;

    6

    2答えて

    D(言語リリース2)でインポートする基本モジュールを使用しようとしています。ガイドとして、私はdlang.orgの例を使用しましたが、私の単純なプログラムはコンパイルされません。ファイルは同じディレクトリにあります。ここで は私のmain.dファイルの内容です: import std.stdio; import mymodule; void main(string[] args){