Это предупреждение появляется, когда у вас есть одно объявление типа, которое противоречит другому (один говорит «класс», другой говорит «структура»). Учитывая одно правило определения, все объявления, кроме не более одного, должны быть предварительными объявлениями. Как правило, в предупреждении указывается, что предварительное объявление типа является неправильным и, как правило, является простой опечаткой и должно быть исправлено. В этом случае не должно быть никаких побочных эффектов, но вы действительно должны это исправить.
Могут, однако, произойти некоторые очень неприятные вещи, если у вас есть конфликты имен типов (возможно, вызванные использованием выражений «using пространство имен» или глобальное загрязнение пространства имен). Эти предупреждения могут указывать на то, что вы смешиваете заголовки из двух разных библиотек, а имена типов конфликтуют. Код, скомпилированный в этих условиях, может сделать очень неожиданные вещи.
Мой совет - поймите, почему появилось предупреждение, и исправьте его. Если предупреждение относится к сторонним продуктам, настаивайте на том, чтобы они его исправили.