Jak wygląda składnia makra, które zwraca wartość o typie zdefiniowanym przeze mnie?
Nie da się.
generalnie to się nie da się wymusić typu ani niczego, ale można trochę zasymulować.
mógłbyś np napisać coś w stylu:
#define MAKRO(X) static_cast<int>(x)
czy coś w tym stylu.
Lepiej byś napisał co konkretnie chcesz zrobić. Może nie potrzebujesz w ogóle makr.
Mam wygenerować makro, które symuluje funkcję, która wysyła komendy w platformie POBICOS.
Generalnie w tej funkcji wywołuję inną, która zwraca kod błędu i właśnie chcę aby ten kod błędu był zwracany przez makro.
Takie używanie makr jest pozbawione sensu. Aczkolwiek, jeśli już musisz...
Możesz spróbować użyć do tego rzadko używanego operatora przecinek - wyglądałoby to mniej-więcej tak
#define MYMACRO(X) static_cast<int>(BLAH(1),BLAH(ASDF(2)+2),BLAH(2),MY_POBICOS_FUNCTION())
Warunek jest taki żeby ostatnią funkcją była ta która ma zwrócić wartość
Od tego są szablony w połączeniu z inline.