ist template<class Type,Type Value> zulässig?



  • ich frage mich ob es zulässig ist, bei einem template mit mehreren template parametern den ersten parameter gleich als typ für den zweiten zu benutzen?
    zwar meckert der bcb nicht, aber bei templates meckert er generell sehr selten, deshalb frag ich 😉

    also als beispiel:

    template<class Type,Type Value>
    class test{
    };
    //in der main
    test<int,15> a;
    test<float,3.5f> b;
    

    //edit eine weitere frage brennt mir auf der zunge:
    wenn ich zb als typ koordinates(also x/y/z koordinaten) angebe, und das was oben steht zulässig ist, wie krieg ich dann im zweiten argument die benötigten parameter? ctor scheinen ja nich zu funktionieren,wie kann ich das machen?



  • ja, es ist legal.



  • Es funktioniert nur mit builtin Typen. Ein

    test<string, "hallo"> foo;

    ist nicht erlaubt



  • hmm, dann muss ich nicht builtin typen wohl auch via templates realisieren...



  • Shade Of Mine schrieb:

    Es funktioniert nur mit builtin Typen.

    Nicht mal das. Als Non-Type Parameter für ein Template kommen nur folgende Typen in Frage:
    1. Integrale- bzw. Aufzählungs-Typen
    2. Pointer (Objekt- Funktions- und Memberpointer)
    3. Referenzen


Anmelden zum Antworten