Is the empty parenthesis function (() instead of (void)) prototype removed in the new standard?
My OOP library relies on it for its unspecified arguments behavior.
For example:
#define ptmethod(pt, ret_type, identifier) \ (*((ret_type (**)()) padd(pt, identifier, ptfunction, NULL, NULL)))
#define ptapply(pt, ret_type, identifier, ...) \ ((ret_type (*)()) pget(pt, identifier))(pt __VA_OPT__(,) __VA_ARGS__)
You could add a method to an object with:
void drive\_Car(prototype \*Car, double speed, double x\_direction, double y\_direction);
ptmethod(Car, void, "drive") = drive\_Car;
and call it with
ptapply(Car, void, "drive", 1.3, 0.1, 5.0)
How do I do this in the new standard?