У меня есть 2 объекта, которые используют std :: string для работы. Объект A может использоваться независимо от объекта B. Однако может возникнуть ситуация, когда оба объекта A и B могут использоваться в одном и том же файле main.cpp, что может вызвать конфликт заголовков, а заголовок может быть скомпилирован дважды. Как я могу предотвратить компиляцию дважды? Я пытался использовать:
#ifndef string_H
#define string_H
#endif
Это не работает, и объект B не может использовать библиотеку строк, я думаю, что это предназначено для использования только для сторонних библиотек, таких как моя собственная и недля официальных библиотек. Поэтому мой вопрос: как бы вы добавили защиту над заголовком из стандартной библиотеки?
РЕДАКТИРОВАТЬ: я использую Visual Studio 2017, поэтому я считаю, что все это написано Microsoft. Спасибо за ваши ответы, я не знал, что в std :: уже есть встроенные охранники.