Collaboration diagram for Objects:
Macros | |
| #define | DECLARE_FSTR_OBJECT(name, ObjectType) extern const ObjectType& name; |
| Declare a global Object reference. More... | |
| #define | FSTR_DATA_NAME(name) __fstr__##name |
| Provide internal name for generated flash string structures. More... | |
| #define | FSTR_PTR(objref) (&objref) |
| Given an Object& reference, return a pointer to the actual object. More... | |
| #define | FSTR_CHECK_STRUCT(name) |
| Check structure is POD-compliant and correctly aligned. More... | |
| #define | IMPORT_FSTR_OBJECT(name, ObjectType, file) |
| Import an object from an external file with reference. More... | |
| #define | IMPORT_FSTR_OBJECT_LOCAL(name, ObjectType, file) |
| Like IMPORT_FSTR_OBJECT except reference is declared static constexpr. More... | |
Internal macros | |
| #define | DEFINE_FSTR_OBJREF(name, object) const decltype(object)& name PROGMEM = object; |
| #define | DEFINE_FSTR_REF(name) DEFINE_FSTR_OBJREF(name, FSTR_DATA_NAME(name).object) |
| #define | DEFINE_FSTR_REF_LOCAL(name) static constexpr DEFINE_FSTR_REF(name) |
Detailed Description
Macro Definition Documentation
◆ DECLARE_FSTR_OBJECT
| #define DECLARE_FSTR_OBJECT | ( | name, | |
| ObjectType | |||
| ) | extern const ObjectType& name; |
Declare a global Object reference.
- Parameters
-
name ObjectType
◆ DEFINE_FSTR_OBJREF
| #define DEFINE_FSTR_OBJREF | ( | name, | |
| object | |||
| ) | const decltype(object)& name PROGMEM = object; |
◆ DEFINE_FSTR_REF
| #define DEFINE_FSTR_REF | ( | name | ) | DEFINE_FSTR_OBJREF(name, FSTR_DATA_NAME(name).object) |
◆ DEFINE_FSTR_REF_LOCAL
| #define DEFINE_FSTR_REF_LOCAL | ( | name | ) | static constexpr DEFINE_FSTR_REF(name) |
◆ FSTR_CHECK_STRUCT
| #define FSTR_CHECK_STRUCT | ( | name | ) |
Value:
static_assert(std::is_standard_layout<decltype(name)>::value, "FSTR structure not Standard Layout"); \
static_assert(offsetof(decltype(name), data) == sizeof(uint32_t), "FSTR structure alignment error");
Check structure is POD-compliant and correctly aligned.
◆ FSTR_DATA_NAME
| #define FSTR_DATA_NAME | ( | name | ) | __fstr__##name |
Provide internal name for generated flash string structures.
◆ FSTR_PTR
| #define FSTR_PTR | ( | objref | ) | (&objref) |
Given an Object& reference, return a pointer to the actual object.
- Parameters
-
objref
- Note
- This macro was provided for use with old compilers (e.g. GCC 4.8.5) but is no longer required.
◆ IMPORT_FSTR_OBJECT
| #define IMPORT_FSTR_OBJECT | ( | name, | |
| ObjectType, | |||
| file | |||
| ) |
Value:
IMPORT_FSTR_DATA(FSTR_DATA_NAME(name), file) \
DEFINE_FSTR_OBJREF(name, FSTR_DATA_NAME(name))
#define FSTR_DATA_NAME(name)
Provide internal name for generated flash string structures.
Definition: Object.hpp:55
#define IMPORT_FSTR_DATA(name, file)
Link the contents of a file.
Definition: Utility.hpp:115
Import an object from an external file with reference.
- Parameters
-
name Name for the object ObjectType Object type for reference file Absolute path to the file containing the content
- See also
- See also
IMPORT_FSTR_DATA
- Note
- Can only be used at file scope
◆ IMPORT_FSTR_OBJECT_LOCAL
| #define IMPORT_FSTR_OBJECT_LOCAL | ( | name, | |
| ObjectType, | |||
| file | |||
| ) |
Value:
IMPORT_FSTR_DATA(FSTR_DATA_NAME(name), file) \
static constexpr DEFINE_FSTR_OBJREF(name, FSTR_DATA_NAME(name))
Like IMPORT_FSTR_OBJECT except reference is declared static constexpr.
1.9.1