ritorna una funzione generica con tipo specificato

cosa succede se ho una classe generica con tipo T e ho una funzione che ritorna con T. e voglio che la mia funzione restituisca una stringa specifica se il typid (T) = = typedef (string)?

template<class T>
class Class1
{
public:
    Class1();
    ~Class1();
    T func();
};


template <class T>
T Class1<T>::func()
{
    string d = "T = string";
    if (typeid(string) == typeid(T))
        return (T)d; <-- here I got the problem
}

En title : return a generic function with specified type

8 Comments:

  1. cosa stai cercando di fare? come si utilizza questo codice? qual è il "problema" / errore?
  2. non esiste una "classe generica". ci sono solo "modelli di classe". questo malinteso sembra essere alla radice di molta confusione di principiante.
  3. ecco un esempio di esplicita specializzazione di una funzione membro di un modello di classe:

    #include <iostream>
    #include <string>
    
    template<class T>
    class Class1
    {
    public:
        Class1() {}
        ~Class1() {}
        T func();
    };
    
    
    template <class T>
    T Class1<T>::func()
    {
        std::cout << "non-specialized version\n";
        return T();
    }
    
    template<>
    std::string Class1<std::string>::func()
    {
        std::cout << "string version\n";
        return "woot";
    }
    
    int main()
    {
        Class1<int>().func();
        Class1<std::string>().func();
    }
    
  4. potete dirmi qual è la differenza tra la frase "classe generica" e "modelli di classe"?
  5. @DarlekSupreme In C + +, ci sono solo modelli di classe. non sono tipi (o classi) stessi, ma progetti ("modelli") per creare classi. come ha detto Stephan T. Lavavej: "non si può mangiare un cutter, sono di metallo. ma potete usarli per fare i biscotti e i biscotti sono deliziosi. " le classi generiche sono costrutti di altri linguaggi di programmazione come C # e Java.

More similar articles:

  • ritorna opzionale dalla funzione generica in c ++
  • scala funzione generica per convertire il tipo "Any" all'argomento generico specificato
  • implementazione generica dell'interfaccia con il tipo specificato
  • ritorna un elenco generico da una funzione generica
  • come posso cambiare il parametro classe generica che è stato specificato a super class dalla sottoclasse?
  • ritorna l'istanza generica di classe con tipo anonimo basato su Newexpression
  • VS2010 Implementazione L'espansione dell'interfaccia generica non utilizza il tipo specificato
  • creare un'istanza di funzione generica con un tipo specificato
  • array di una classe generica con tipo non specificato
  • Java: estendere da una classe generica con un tipo specificato
  • ritorna lo stesso tipo di classe generica
  • disiscrizione da un evento di una classe generica il cui parametro di tipo è specificato in un metodo generico
  • ritorna elenco generico dalla funzione generica con C ++/CLI
  • ritorna superclass generica da una funzione invece di sottoclasse
  • è possibile inizializzare una variabile generica con un valore specificato?
  • funzione membro nella coda di priorità java che ritorna ma non rimuove il valore specificato?
  • utilizzando SHA2-512 (CALG_SHA_512) su Windows 7 ritorna "Algoritmo non valido specificato"
  • il Tipo Erasure si verifica quando si eredita una classe generica con un Tipo specificato?
  • ritorna un singleton dalla classe generica
  • voglio scrivere una funzione generica dove per questi validi formati di data MM/dd/yyyy, M/dd/yyyy o M/d/yyyy, la funzione ritorna true
  • Tao_IDL ritorna con un errore non specificato durante la compilazione usando gcc
  • c # metodo di chiamata della classe di tipo specificato in classe generica
  • ritorna una classe contenente Lista generica
  • come scrivere la funzione generica javascript per ottenere il formato di tempo specificato di seguito
  • avviso di trasmissione non controllato quando si ritorna implementazione generica basata sull'<>argomento</> Class
  • non è possibile utilizzare una variabile di istanza di classe non generica derivata da una classe generica con tipo specificato
  • Map.contains Valore ritorna Falso anche se il valore specificato esiste in valueset e non esiste un errore di tipo objecttype
  • ritorna raccolta generica da getter
  • funzione generica che accetta il nome di una tabella e di una colonna e restituisce tutti i valori chiave primari corrispondenti a un valore di filtro specificato
  • iniettare dinamicamente un tipo in una variabile generica in C #