What is the STAG() macro used for?
Opened this issue · 1 comments
julianrendell commented
I'm working with a student to make an ArtNet service plugin...
We've come across the STAG
macro- https://github.com/philbowles/h4plugins/search?q=STAG
Couple of questions:
- what is it supposed to mean? (Service TAG?)
- is every service plugin required to define a STAG?
- where are the parameters to the usages of STAG in
H4Service.h
defined? e.g.STAG(age)
- where isage
defined? We've tried searching in files and not found a definition that we understand; I've also tried using Visual Studio Codes and it can't find the definition either ;-) - if a new service plugin should define a STAG, where should it declare it?
Thanks in advance!
HamzaHajeir commented
Hi
It's intended to define a function that returns the exact passed literals as c-string.
#define STAG(x) constexpr const char* x##Tag(){ return #x; }
So a STAG(all) call defined a function as following:
constexpr const char* allTag(){ return "all"; }
It's intended to standardize the tags used, and to raise a compilation error if one isn't spelled correctly.
so if happened that someone typed alTag()
, it'll give a compilation error because it's not defined.