Eu já vi em outros códigos algumas definições de macros usando #define. Achei semelhante a sua explicação de inline.
#include <iostream>
using namespace std;
#define abs(i) \
( (i) >= 0 ? (i) : -(i) )
inline int inlineAbs(int i)
{
return i >= 0 ? i : -i;
}
int main()
{
int x = abs(-4);
cout << x << endl
x = inlineAbs(-4);
cout << x << endl
}
Poderias explicar a diferença?