Em C++ é possível declarar uma função denominada Inline. Sempre que uma função deste tipo é invocada, o seu código é copiado e inserido pelo compilador para cada invocação. O seguinte exemplo mostra as similaridades e as diferenças entre funções Inline e as conhecidas macros.
#define MAX(A,B) ((A) > (B) ? (A) : (B))
inline int max(int a, int b)
{
(a > b) ? return(a) : return(b);
}
void main()
{
int i,x=5, y=2;
i = MAX(x++,y++); // x incrementado 2 vezes
i = max(x++,y++);
}