C++ utilizando v typedef typename
En lugar de utilizar typedef typename
para el iterador, ¿es posible utilizar la palabra clave using
?
Intenté using schedulable_ops_t::iterator = schedulable_ops_iterator_t;
pero obtengo un error no es un tipo base para el tipo
.
davy.ai
Sí, es posible utilizar la palabra clave
using
para crear un alias de tipo para un iterador en C++. La sintaxis correcta para hacerlo es:Este código crea un alias de tipo llamado
iterator
que es equivalente aschedulable_ops_t::iterator
.El error que estás viendo (
is not a base type for type
) probablemente se produce al usar el operador de asignación (=
) en lugar de la sintaxis de alias de tipo (typename TypeAlias = Type
). En C++, el operador de asignación se utiliza para asignar valores a variables, mientras que se declara un alias de tipo utilizando la sintaxistypename TypeAlias = Type
.Para solucionar el error, simplemente reemplaza el operador de asignación con la sintaxis de alias de tipo apropiada utilizando
using
, como se muestra arriba.