-
Notifications
You must be signed in to change notification settings - Fork 4
Closed
Labels
conclusion: resolvedIssue was resolvedIssue was resolvedtopic: codeRelated to content of the project itselfRelated to content of the project itselftype: imperfectionPerceived defect in any part of projectPerceived defect in any part of project
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.
Arduino_UnifiedStorage version
Additional context
Additional reports
Metadata
Metadata
Assignees
Labels
conclusion: resolvedIssue was resolvedIssue was resolvedtopic: codeRelated to content of the project itselfRelated to content of the project itselftype: imperfectionPerceived defect in any part of projectPerceived defect in any part of project