Sto avendo problemi con la deduzione di un tipo di un singolo elemento di un array C++.C'è un modo per dedurre un tipo di un singolo elemento di un array in C++
vorrei fare realizzare qualcosa di simile:
template <class T>
struct array_element { };
template <class T>
struct array_element<T[]> {
using type = T;
};
int main() {
int a[5] = {1, 2, 3, 4, 5};
array_element<decltype(a)>::type element = a[0];
}
Ma, ovviamente, il codice non viene compilato (l'int [5] non corrisponde a T []) ...
Naturalmente! Grazie! –
Il codice effettivo è un po 'più complesso (si trova all'interno dell'argomento templates) e l'utilizzo dell'approccio con 'decltype' non sarebbe molto pulito lì ... Ma il tuo suggerimento con parametro aggiuntivo di specializzazione si adatta perfettamente! –