Как С++ включают в себя защитные устройства, которые обычно называются? Я очень часто вижу это:
#ifndef FOO_H
#define FOO_H
// ...
#endif
Однако я не считаю это очень интуитивным. Не видя имени файла, трудно сказать, что такое FOO_H
и для чего оно относится.
Что считается лучшей практикой?