Discussione: Torvalds e C++
View Single Post
Old 08-09-2007, 11:44   #85
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7246
Quote:
Originariamente inviato da fek Guarda i messaggi
No. In C non puoi esprimere algoritmi che sono eseguiti a compile time (metaprogrammazione) come parte integrante del linguaggio. Non ha i template.
a parte che questo non diminuisce il potere espressivo del linguaggio perchè qualsiasi cosa volevi fare usando i template la puoi fare in un altro modo... comunque la metaprogrammazione in C esiste e si basa sul preprocessore (anche se minimale)
Codice:
#define SWAP(a, b, type) { type __tmp_c; c = b; b = a; a = c; }

int main()
{
    int a = 3;
    int b = 5;

    printf("a is %d and b is %d\n", a, b);
    SWAP(a, b, int);
    printf("a is now %d and b is now %d\n", a, b);

    return 0;
}
inoltre se parliamo di C++ i template non sono sempre una soluzione elegante e/o efficiente
http://people.cs.uchicago.edu/~jacob...templates.html
soprattutto quando dice
Quote:
C++ templates hide your intentions from the compiler: did you mean type abstraction? Did you mean a syntax extension? Did you mean constant-folding or compile-time code generation? The compiler doesn't know, so it has to just blindly apply the copy-and-paste strategy and then see what happens
k0nt3 è offline   Rispondi citando il messaggio o parte di esso