No se permite el tipo incompleto: stringstream


¿Por qué esta línea da el error Error: incomplete type is not allowed?

stringstream ss;
Author: M.M, 2011-04-25

3 answers

#include <sstream> y utilizar el nombre completo es decir, std::stringstream ss;

 149
Author: Prasoon Saurav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-25 18:26:28

Por favor, añadir:

#include <sstream>
 29
Author: ybungalobill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-25 18:22:22

Un tipo incompleto es cuando tiene una declaración forward del tipo (por ejemplo, class stringstream;), por lo que el compilador sabe que este identificador es un tipo, pero no una definición completa para él (class stringstream { ... };).

Esto podría suceder cuando se han incluido encabezados que utilizan el tipo, pero no el encabezado donde se define el tipo.

Para cosas de la biblioteca estándar, como la clase stringstream, use la documentación de referencia (por ejemplo, páginas Unix man, MSDN, etc.) para averiguar lo que necesita #include para usarlo y en qué espacio de nombres encontrarlo, si lo hay. Es posible que necesite buscar páginas donde aparezca el nombre de la clase (por ejemplo, man -k).

 8
Author: rakslice,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-22 19:16:01