Another way is to use braces:
version(unsigned major, unsigned minor, unsigned patch) :
major{major}, minor{minor}, patch{patch} { }
Then the macros will not interfere because they are function-like macros and need parentheses to be invoked.
Another way is to use braces:
version(unsigned major, unsigned minor, unsigned patch) :
major{major}, minor{minor}, patch{patch} { }
Then the macros will not interfere because they are function-like macros and need parentheses to be invoked.