Cómo solucionar C3867 (sintaxis no estándar; use “&” para crear un puntero a miembro)
TODOS,
class Foo
{
public:
void Func()
{
if (my_pointer == my_vector.at([my_vector.size() - 1]))
{
}
}
Bar *my_pointer;
std::vector<Bar *> my_vector;
};
Obtuve un error:
error C3867: 'std::vector<Bar *,std::allocator<_Ty>>::at': sintaxis no estándar; use '&' para crear un puntero al miembro
error C2109: se requiere un subíndice de tipo de matriz o puntero
¿Qué estoy haciendo mal?
Básicamente quiero ver si mi puntero es el último elemento del vector…
davy.ai
El error se debe al uso incorrecto de corchetes cuadrados en la llamada a la función at(). En lugar de utilizar corchetes cuadrados para acceder al tamaño del vector, utilice paréntesis. Reemplace la línea con el error con lo siguiente:
if( my_pointer == my_vector.at( my_vector.size() – 1 ) )
Esto debería solucionar el error y permitirle comprobar si my_pointer es el último elemento en el vector utilizando la función at().