खोज…


वाक्य - विन्यास

  • __traits (TraitsKeyword, TraitsArguments ...)

एक संरचना के सदस्यों से अधिक Iterating

import std.stdio;

struct A {
    int b;
    void c();
    string d;
};

void main() {
    // The following foreach is unrolled in compile time
    foreach(name; __traits(allMembers, A)) {
        pragma(msg, name);
    }
}

allMembers लक्षण दिए गए प्रकार के सदस्यों के नाम वाले स्ट्रिंग का एक टपल लौटाता है। ये तार संकलन के समय में जाने जाते हैं।

एक विरासत के सदस्यों के बिना एक संरचना / वर्ग के सदस्यों पर Iterating

module main;

auto getMemberNames(T)() @safe pure {
    string[] members;
    
    foreach (derived; __traits(derivedMembers, T)) {
        members ~= derived;
    }
    
    return members;
}

class Foo {
    int a;
    int b;
}

class Bar : Foo {
    int c;
    int d;
    int e;
}

void main() {
    import std.stdio;
    
    foreach (member; getMemberNames!Bar) {
        writeln(member);
    }
}

derMembers स्ट्रिंग शाब्दिक का एक टपल लौटाता है, जहां प्रत्येक स्ट्रिंग सदस्य का नाम है।

उदाहरण आउटपुट:

c
d
e


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow