programacion - principales archivos de cabecera en c++




¿Cuándo no usar include guard en el archivo de cabecera? (3)

Todos sabemos cuándo usar incluir guardia, pero ¿cuándo no debemos usarlo en nuestro proyecto?

Recientemente, vi un proyecto con compilación de mezclas (CUDA + GCC), un archivo de encabezado (archivo CUDA) se dejó deliberadamente sin incluir la protección. Solo tengo curiosidad por ello.


En nuestros proyectos nunca utilizamos incluir guardia. Estamos utilizando include antiguard:

#ifndef _stdafx_h_
#define _stdafx_h_
#else
#error reinclude stdafx.h
#endif

Porque si volviste a incluir el mismo encabezado, escribiste un código incorrecto o trabajaste con una arquitectura incorrecta.


Hay 2 escenarios fuera de mi cabeza:

  1. cuando desea activar / desactivar las capacidades de depuración (como funciona assert.h )
  2. para 'x-macro' tipo de funcionalidad 'x-macro' donde tiene el archivo de inclusión, realice 2 partes del problema, como definir una enumeración y luego definir una matriz de nombres de caracteres correspondientes a las enumeraciones

Un caso en el que desea incluir el mismo archivo varias veces con diferentes parámetros. En este caso, el archivo de inclusión actuaría como una especie de plantilla. Un ejemplo son los scalers en Dosbox.







include-guards