В чем проблема с директивой # import, упомянутой ниже? - PullRequest
0 голосов
/ 24 апреля 2020

Здесь вы найдете следующее утверждение:

#import не является хорошо разработанной функцией. Пользователи заголовочного файла должны знать, что он должен быть включен только один раз.

В чем проблема?

1 Ответ

2 голосов
/ 24 апреля 2020

В статье проблема сформулирована довольно точно: если вы пишете заголовок с намерением использовать его с #import (он же не включает include guards / et c), то вы ожидаете пользователя этого заголовочного файла, чтобы использовать #import или другие средства, чтобы убедиться, что файл включен только один раз. Если пользователь этого не знает или если заголовок используется с компилятором, который не поддерживает #import (или делает что-то еще с этой командой), тогда ваш заголовок не будет работать должным образом. И, особенно в больших проектах, над которыми работает много людей, есть большая вероятность, что когда-нибудь кто-то может случайно #include этот заголовок вместо этого, или что проект будет перенесен на другой компилятор в будущем.

...