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++); }