niej jest sprawdzić rozmiar obiektu za pomocą funkcji sizeof. Ponieważ wykonuje się to podczas kompilacji, nie powoduje to zmniejszenia wydajności.
Przykład: Literał::&operator= w pliku regexp.h
unikanie banalnych błędów
Przed
#deflne MakroWypiszl(i) (cout « i « '\n') void TestBezpośr()
Makro Wypiszl(11);
Makro Wy piszl("Test1");
Po
class BezpośrTest
public:
void Wypiszl(int i)
cout « i « '\n';
}:
void’TestBezpośr()
BezpośrTest tbzpr; tbzpr, Wypi$zl(10);
//Generuje błąd kompilacji - C:\book\misc\misc.cpp(126) : error C2664:
//'Wypiszl': cannot convert parameter 1 from 'char [5]' to 'int’
//tbzpr. Wypiszl ("T est"):
Makropolecenia są użyteczne, ale nie umożliwiają sprawdzania typów. Przypuśćmy, że chcemy mieć procedurę, która wyświetla wartość liczby całkowitej. Moglibyśmy użyć makropolecenia, tak jak we fragmencie „Przed”. Zauważmy jednak, że to makropolecenie beztrosko przetwarza każdy podany argument. Można go użyć z licz-