// template specialization
#include <iostream>
using namespace std;
// class template:
template <class T>
class mycontainer {
T element;
public:
mycontainer (T arg) {element=arg;}
T increase() {
//if(T.type==int)//how to do this or something similar?
//do this if an int
return ++element;
//if(T.type==char)
//if ((element>='a')&&(element<='z'))
//element+='A'-'a';
//return element;
}
};
So come scrivere una specializzazione di modello e faccio una def di classe intera separata solo per il tipo di carattere.come fare un altro tipo di tipo in secondo luogo nel modello C++?
E se volessi gestire tutto in un solo blocco di codice?
Come posso verificare se T è un int o un carattere?
Se solo ci fosse un 'static_if' ... forse questo risolverà la stessa cosa – David
Ci sono state molte proposte per un' static_if' ma tutti hanno avuto i problemi. SG8 ha scritto [un'analisi delle proposte] (https://docs.google.com/viewer?a=v&pid=forums&srcid=MDIyMDc3NjUwMTczOTM0Mjk3NjABMDI2MzM3MjkxNDM4NDQ5MzE4NDcBLWVsS1Y4dFhtdDhKATUBaXNvY3BwLm9yZwF2Mg&authuser=0) recentemente. –
@JosephMansfield Il link che hai fornito non ha anteprima. – kevin