name keywords description content c++ namespaces order include-guards

c++ - keywords - ¿Qué viene primero? guardias de encabezado, espacio de nombres e incluye



meta keywords (2)

Lo que has escrito es perfecto. No creo que deba cambiar el orden.

He estado haciendo archivos como este por un tiempo: ¿Tiene sentido el orden? o deberían intercambiarse el espacio de nombres y los #includes y por qué.

#ifndef CLASSNAME_H // header guards #define CLASSNAME_H #include "a.h" // includes in alphabetical order #include "b.h" // user specified includes first #include "c.h" #include <vector> // then library includes namespace MyNamespace { class ClassName { }; } #endif


Sí. Eso se ve bien.

Aunque ordeno mis encabezados de manera diferente (pero alfabéticamente está bien).

Lo único que cambiaría es el protector de inclusión. Hago el include my namspace así como también el nombre de la clase. Como muchas veces tengo clases con el mismo nombre (pero en un espacio de nombres diferente) que usa el mismo código.

#ifndef MY_COMPANY_MY_NAME_SPACE_MYCLASSNAME_H // header guards #define MY_COMPANY_MY_NAME_SPACE_MYCLASSNAME_H #include "a.h" // includes in order of most specific to most general. // My includes first. // Then C++ headers <vector> // I group all the containers together. // Then C specific headers <sys/bla.h> // Then C generic headers <ctype.h> namespace MyNamespace { Class ClassName { }; } #endif