Creo que desea eliminar el puntero del argumento de tipo a la función. Si es así, entonces aquí es cómo se puede hacer esto,
template<typename T>
void func()
{
typename remove_pointer<T>::type type;
//you can use `type` which is free from pointer-ness
//if T = int*, then type = int
//if T = int****, then type = int
//if T = vector<int>, then type = vector<int>
//if T = vector<int>*, then type = vector<int>
//if T = vector<int>**, then type = vector<int>
//that is, type is always free from pointer-ness
}
donde remove_pointer
se define como:
template<typename T>
struct remove_pointer
{
typedef T type;
};
template<typename T>
struct remove_pointer<T*>
{
typedef typename remove_pointer<T>::type type;
};
En C++ 0x, remove_pointer
se define en el archivo de cabecera <type_traits>
. Pero en C++ 03, debes definirlo tú mismo.
Debe agregar un código para aclarar la pregunta. ¿Qué es lo que quieres hacer, cuáles son las entradas? –
@David: tuve algo pero tuve la omisión de no darme cuenta de que debía filtrarse como una etiqueta (y no aparecer). ¿Lo hace desde ATM? –