todos para otro mover manejo los ejemplos directorios directorio crear copiar consola como comandos comando carpeta basicos archivos archivo c++ directory include c-preprocessor

c++ - para - manejo de directorios en c



¿Incluir todos los archivos en un directorio? (4)

¿Cómo se puede lograr lo que el siguiente código está tratando de hacer?

#include "dir/*"


En bash

HEADER=all_headers.h echo "#ifndef __ALL_HEADERS__" > $HEADER echo "#define __ALL_HEADERS__" >> $HEADER for file in dir/*.h do echo "#include <$file>" >> $HEADER done echo "#endif" >> $HEADER


Mira cómo Boost hace esto para, por ejemplo, utility.hpp .

$ cat /usr/include/boost/utility.hpp // Boost utility.hpp header file -------------------------------------------// <snip> #ifndef BOOST_UTILITY_HPP #define BOOST_UTILITY_HPP #include <boost/utility/addressof.hpp> #include <boost/utility/base_from_member.hpp> #include <boost/utility/enable_if.hpp> #include <boost/checked_delete.hpp> #include <boost/next_prior.hpp> #include <boost/noncopyable.hpp> #endif // BOOST_UTILITY_HPP

Ahora solo puede usar #include <boost/utility.hpp> .


No puede, sin ejecutar una secuencia de comandos de antemano que genera todas las declaraciones #include.

El preprocesador solo puede manejar un archivo por instrucción #include, por lo que requiere un #incluir real para cada archivo que desee incluir en el preprocesamiento.


Una forma de lograrlo es escribir un encabezado conveniente que incluya todos los encabezados que desee. Tenga en cuenta que incluir encabezados que no utilizará puede aumentar innecesariamente el tiempo de compilación.