Pregunta

Esto me parece una pregunta trivial, tal vez no encontré la documentación correcta.

Tengo una estructura A, y quiero definir el parámetro B para que sea de retorno tipo de función A:

struct A{
    int operator[](int);
};

Y luego en algún momento

decltype(A::operator[]) b = 0;

Podría hacer esto: pero es feo ...

A a;
decltype(a[0]) b = 0;

(Puede ser doble / int, etc.), no quiero usar plantillas.

Gracias,

¿Fue útil?

Solución

No entiendo bien la necesidad, aparte de jugar con la sintaxis. Eso es precisamente lo que auto fue diseñado para y auto es compatible con el mismo estándar que agregó decltype...

En cualquier caso, debe simular la llamada de función:

decltype(std::declval<A>()[0]) b = 0;   // equivalent to `int b = 0;`
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top