Waarschijnlijk kryptische titel, maar kon niks beters bedenken.
De situatie is C++ op embedded systemen (microcontrollers). Ik heb een eigen library, waarbij ik de gebruiker de mogelijkheid wil geven om een gedeelte niet mee te laten compileren om de memory footprint te verkleinen, is dat mogelijk? En dan dat als de gebruiker niks extras aangeeft gewoon de standaard volledige library wordt gecompileerd.
Met #defines en dan #ifdef kan het, maar van wat ik heb gevonden is de enige 'goede' methode als je dan een .h file met die defines include. En dan moet je dus verplicht altijd als gebruiker een extra .h file maken met de juiste naam (het is niet handig als deze bij de library zelf zit ivm het aanwezige repository systeem: Als je dan de library importeert en een andere configuratie optie kiest moet die library weer gecommit worden, wat niet de bedoeling is).
Zover ik heb kunnen vinden is een #define in main.cpp zetten en die checken in de library geen juiste methode, ook al kan het soms werken.
Wil ik nu iets wat niet kan, of zijn er andere opties? Je zou natuurlijk de libraries kunnen gaan splitsen waarbij je een 'beperkte' library hebt, en dat de 'volledige' die inherit en extra dingen eraan toevoegen. Al wordt het daar niet overzichtelijker van imo.
De situatie is C++ op embedded systemen (microcontrollers). Ik heb een eigen library, waarbij ik de gebruiker de mogelijkheid wil geven om een gedeelte niet mee te laten compileren om de memory footprint te verkleinen, is dat mogelijk? En dan dat als de gebruiker niks extras aangeeft gewoon de standaard volledige library wordt gecompileerd.
Met #defines en dan #ifdef kan het, maar van wat ik heb gevonden is de enige 'goede' methode als je dan een .h file met die defines include. En dan moet je dus verplicht altijd als gebruiker een extra .h file maken met de juiste naam (het is niet handig als deze bij de library zelf zit ivm het aanwezige repository systeem: Als je dan de library importeert en een andere configuratie optie kiest moet die library weer gecommit worden, wat niet de bedoeling is).
Zover ik heb kunnen vinden is een #define in main.cpp zetten en die checken in de library geen juiste methode, ook al kan het soms werken.
Wil ik nu iets wat niet kan, of zijn er andere opties? Je zou natuurlijk de libraries kunnen gaan splitsen waarbij je een 'beperkte' library hebt, en dat de 'volledige' die inherit en extra dingen eraan toevoegen. Al wordt het daar niet overzichtelijker van imo.