Допустимо ли в одном месте использовать ключевое слово `struct`, а в другом `class` для указания одного типа?

Допустимо ли в одном месте использовать ключевое слово struct, а в другом class для указания одного типа?

struct A {
    class A* ptr;
};

Ответы (1 шт):

Автор решения: HolyBlackCat

Кланг выдает варнинг:

warning: class 'A' was previously declared as a struct; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]

Так что видимо легально, но может не работать в MSVC.

→ Ссылка