Cos'è Decltype in C++
Guarda il tipo di entità o un'espressione dichiarata. DeclType è un tipo di operatore che esamina il tipo di espressione data, al contrario di "Auto", che consente di definire una variabile con un certo tipo ma consente di recuperare il tipo dalla variabile. Le informazioni del tipo sono fornite da DECLTYPE durante la compilazione e da TypeID durante l'esecuzione. Di conseguenza, se un oggetto di una classe derivata ha un riferimento o un puntatore di classe base che punta ad esso, TypeID fornirà il riferimento o il puntatore del tipo derivato anziché il tipo, che sarà fornito da Decttype.
Quando è necessario conoscere il tipo dinamico di un oggetto, viene utilizzato il typeid dell'operatore. Tuttavia, il nome reale che viene restituito è in qualche modo dipendente dal compilatore.
La sintassi generale C ++ prevede che Decrtype è la seguente:
Sintassi:
decltype (espressione)Il decltype prende solo un parametro, che è un'espressione. Il decltype restituisce il tipo di parametro di espressione. Utilizzando le seguenti linee guida, il compilatore dipende dal tipo di parametro di espressione.
Esempio 1
L'implementazione della discussione di cui sopra è fornita dal codice Decltype. Poiché più di una variabile, funzione, classe, ecc., non può avere lo stesso nome nell'ambito identico. Lo spazio dei nomi viene quindi introdotto per risolvere questo problema. Successivamente, abbiamo stabilito la funzione "MY_FUNC1" che restituisce il valore intero "5", poiché inizialmente abbiamo specificato il tipo di dati INT nella funzione "MY_FUNC1".
Ancora una volta, abbiamo stabilito una funzione come "my_func2" e abbiamo assegnato un tipo di dati Char ad esso. Questa funzione restituisce il valore del carattere "I". Successivamente, abbiamo costruito l'int main () del programma, dove abbiamo distribuito il modificatore Decltype. Il modificatore Decltype prende rispettivamente il "my_func1" e "my_func2". Al Decltype, abbiamo anche definito le due variabili come "A" e "B".
Le variabili "A" e "B" hanno gli stessi tipi di dati del tipo di ritorno di "MY_FUNC1" e "MY_FUNC2". Quindi, abbiamo un'istruzione cout in cui il typeid prende le variabili "a" e "b" come input e restituiranno il tipo di queste variabili.
#includerePoiché il tipo di "my_func1" è int e "my_func2" è char. Quindi, nell'output, viene restituito il tipo "I" e "C", il che indica il tipo INT e Char.
Esempio 2
Di seguito è riportata un'ulteriore illustrazione dell'uso di decltype, che è leggermente diverso da quello precedente. Abbiamo costruito direttamente il principale () di questo particolare programma dopo la sezione intestazione. All'interno del programma int main (), abbiamo dichiarato la variabile "num" e assegnato un numero "10" ad esso. Quindi, abbiamo chiamato il modificatore Decltype, che prende la variabile "num" come parametro. Con il modificatore Decltype, abbiamo anche impostato la variabile "i" che ha il tipo int lo stesso del tipo di variabile "num".
Quindi, abbiamo aggiunto NUM e il numero "10" utilizzando l'operatore più all'interno della variabile "I". Dopo questo, abbiamo un comando cout in cui viene invocato il typeid che prende la variabile "i" come input e fornisce il suo tipo.
#includereMentre forniamo il tipo INT alla variabile "num" nello snippet di codice sopra. L'output visualizza la parola "i" che è il valore del tipo int della variabile "num".
Esempio 3
I numeri numerici minimi vengono restituiti dal metodo del modello C ++ Min Type (), che viene visualizzato di seguito. Qualsiasi tipo integrale può essere utilizzato per i due numeri. Il tipo minimo di due viene utilizzato per determinare il tipo di ritorno.
Con il modificatore automatico, abbiamo creato la funzione Searchmin () e abbiamo superato le variabili X e Y come parametro al suo interno. Quindi, abbiamo assegnato i nomi delle variabili alla parola chiave Decltype. Il decltype prende la variabile con l'espressione condizionale. La funzione cerca il valore minimo e restituisce il tipo di variabile che ha il valore minimo. Successivamente, all'interno di Int Main (), abbiamo passato il valore alla funzione Seatchmin tramite il comando Cout.
#includereL'output ha visualizzato i valori minimi di seguito. Come dalla prima istruzione Searchmin, 4.55 viene restituito dal doppio tipo. Quindi la seconda istruzione, 2, è ottenuta dal tipo di dati INT.
Conclusione
Questo è tutto per C ++ Decltype. Ne abbiamo discusso brevemente con la definizione, la sua sintassi e la sua funzionalità in questo particolare articolo. Qui, abbiamo mostrato il Decltype che lavora con il codice di esempio in esecuzione in C++. Tutti i casi sono distinti l'uno dall'altro. Le istanze differiscono l'una dall'altra. Lo script Decltype con il prefisso automatico è dimostrato nell'ultimo esempio. La parola chiave di detrazione del tipo automatico, Auto, viene utilizzata in C ++ 11 e oltre.