Optimización de librerías de terceros cuando usas namespaces

Hola:

Si vas a includear una librería de terceros en un namespace propio

namespace propio {
     #include "libreria.h"
}

Ten presente que has creado un ámbito nuevo, por lo tanto, si esa librería de tercero hace un include de una librería del sistema, pongamos:

#include <Wire.h>

Ten presente que si otra librería de tercero vuelve a hacer el include, volverá a incluir y ocupar memoria la Wire.h, puesto que la has metido en dos ámbitos diferentes:

namespace segundoambito {
    #include "libreria_que_includea_Wire.h"
}

Es decir, tienes:

propio::wire  // --- Si es para comprenderlo, está mal, es más complicado pero se comprende
segundoambito::wire  // ---- siii, igual igual

Cuando vayas a hacer esto, mejor estudia las dependencias de tus librerías de terceros y haz algo como esto

// --- Librerías del sistema
#include <Arduino.h>
// --- Dependencias de librerías de terceros
#include <Wire.h>
namespace propio{
     #include "libreria.h"
}
namespace segundoambito {
    #include "libreria_que_includea_Wire.h"
}

Si incluyes librerías de terceros, no lo hagas a la brava, estudia su comportamiento, así ahorras memoria