2009-09-18 24 views
7

Recibo un error al compilar un programa C++ en el que una de las líneas realiza una llamada desde "std :: system (SomeString)". Este programa compilado hace 3 años, pero al compilarlo hoy, recibo un error que dice que 'system' no es miembro de 'std'. ¿Hay algo que deba importar para usar std :: system, se ha abandonado o se ha movido a otro archivo de encabezado?C++ std :: system 'system' no es un miembro de std

Respuesta

25

std::system es (y siempre lo ha sido) en <cstdlib>.

No está definido por el estándar C++ si los encabezados estándar se incluyen entre sí, y si es así, cuáles. Así que es posible que hace 3 años, en un compilador diferente o en una versión diferente del mismo compilador, tu código funcionara por accidente, porque uno de los encabezados que incluiste incluía <cstdlib>. En el compilador/versión que está utilizando ahora, no es así.

2

Asegúrese de que tiene #include <cstdlib> en el código.

0

Lo he intentado. Funciona en ambos sentidos en vs2008 - "std :: system()" o "system()". Y desea incluir ya sea stdlib.h o cstdlib

+1

¿Qué nueva información que responde dar en comparación con la aceptada? –