Closed
Description
Describe the problem
When the ArduinoIoTCloud library is used in the same sketch as this library, compilation fails due to a name collision:
In file included from c:\Users\per\Documents\Arduino\libraries\Arduino_UnifiedStorage\src/Arduino_UnifiedStorage.h:10:0,
from C:\Users\per\Documents\Arduino\000-support\github\arduino-libraries\Arduino_UnifiedStorage\52\52.ino:2:
c:\Users\per\Documents\Arduino\libraries\Arduino_UnifiedStorage\src/Types.h:6:17: error: redeclaration of 'READ'
enum FileMode { READ, WRITE, APPEND };
^~~~
In file included from C:\Users\per\Documents\Arduino\000-support\github\arduino-libraries\Arduino_UnifiedStorage\52\52.ino:1:0:
c:\Users\per\Documents\Arduino\libraries\ArduinoIoTCloud\src/ArduinoIoTCloud.h:53:3: note: previous declaration 'permissionType READ'
READ = 0x01,
^~~~
In file included from c:\Users\per\Documents\Arduino\libraries\Arduino_UnifiedStorage\src/Arduino_UnifiedStorage.h:10:0,
from C:\Users\per\Documents\Arduino\000-support\github\arduino-libraries\Arduino_UnifiedStorage\52\52.ino:2:
c:\Users\per\Documents\Arduino\libraries\Arduino_UnifiedStorage\src/Types.h:6:23: error: redeclaration of 'WRITE'
enum FileMode { READ, WRITE, APPEND };
^~~~~
In file included from C:\Users\per\Documents\Arduino\000-support\github\arduino-libraries\Arduino_UnifiedStorage\52\52.ino:1:0:
c:\Users\per\Documents\Arduino\libraries\ArduinoIoTCloud\src/ArduinoIoTCloud.h:54:3: note: previous declaration 'permissionType WRITE'
WRITE = 0x02,
^~~~~
To reproduce
Compile the following minimal demonstration sketch:
#include <ArduinoIoTCloud.h>
#include <Arduino_UnifiedStorage.h>
void setup() {}
void loop() {}
Expected behavior
Library does not pollute the namespace with declarations of common names. When it is necessary to expose a declaration, a distinctive name (e.g., Arduino_UnifiedStorageFileMode::READ
) is used.