articolo del Dr.Dobb A Portable "typeof" Operator dettoPortable "typeof" del nome con il collegamento esterno
Ma non è possibile utilizzare un modello di classe per estrarre un tipo da un'espressione, come è possibile con i modelli di funzione o sovraccarichi. (Se l'espressione è un nome con collegamento esterno è possibile implementare typeof con i modelli di classe utilizzando un parametro di modello non-tipo, ma questo non è molto utile.)
è la frase in grassetto tra parentesi corretta? E se sì, come può essere usato un parametro di tipo non-tipo per trovare il tipo di un'espressione con il collegamento esterno?
[Ecco il mio "tentativo"] (http://ideone.com/G9hJKl) - non funziona, quindi lo sto postando come commento. Il problema è il problema "pollo e uovo". Ora, * se potessi * in qualche modo rinviare la dichiarazione del parametro di tipo, o potresti avere 'template', potrebbe funzionare. –
milleniumbug
@milleniumbug - Peccato che C++ richieda una dichiarazione modello prima che possa essere specializzata. Altrimenti potrebbe funzionare come 'template struct {typedef T type};'. –
qbt937
Non penso che l'autore di quell'articolo di Dr.Dobb pensasse che avrebbe potuto prendere il tipo di un'espressione come @milleniumbug stava cercando di fare, perché questo non spiegherebbe la necessità che sia un collegamento esterno. – qbt937